Ответ 1
Вы можете добавить слушателя к определенному элементу с помощью делегирования. На самом деле это довольно просто использовать.
Ext.Viewport.add({
html: 'test <span class="one">one</span> hmmm <span class="two">two</span>',
listeners: [
{
element: 'element',
delegate: 'span.one',
event: 'tap',
fn: function() {
console.log('One!');
}
},
{
element: 'element',
delegate: 'span.two',
event: 'tap',
fn: function() {
console.log('Two!');
}
}
]
});
Основные части: element
и delegate
.
-
element
будет иметь значениеelement
почти в каждом случае, если вы не работаете с настраиваемыми компонентами с настраиваемыми шаблонами. -
delegate
- простой CSS-селектор. Таким образом, это может быть отspan
доspan .test.second
В идеале, как сказал Thiem, вы должны максимально использовать преимущества компонентов. Они придадут вам большую гибкость. Но я знаю, что есть определенные случаи, когда вам нужно это делать. Не будет никаких последствий для производительности; на самом деле, это будет быстрее, чем использование компонентов. Однако вы должны никогда реализовывать прослушиватели так, как он предполагал. Он не будет исполнен и чрезвычайно грязный (как он упоминал).