如何将点击事件附加到ExtJS模板元素

How do you attach click events to ExtJS template elements?

本文关键字:ExtJS 元素 事件      更新时间:2023-09-26

除了在onclick=....中构建到XTemplate之外,我该如何向其中的每个链接标记添加点击事件?

new Ext.XTemplate(
    '<ul>',
    '<tpl for="."><li><a href="#{anchor}">{text}</a></li></tpl>',
    '</ul>'
).overwrite('someElement', [
    { text: 'Click me', anchor: '1' },
    { text: 'No, click me', anchor: '2'}
]);

简单的答案是,你没有。相反,您应该使用事件委派:

Ext.get('someElement').on('click', function(event, target) {
    console.log(target);
}, null, {delegate: 'a'});

这有两个主要优点:

  1. 您只需要绑定一个侦听器
  2. 它将在您动态修改内容时起作用