2012-01-09 101 views
5

我该如何在每个链接标记中添加一个点击事件,而不是通过将onclick=....构建到XTemplate中?如何将点击事件附加到ExtJS模板元素?

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'} 
]); 
+0

你能提供更多的代码吗?这取决于控制。 – Krzysztof 2012-01-09 20:30:30

回答

7

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

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

这有两个主要优点:

  1. 你只需要一个听众
  2. 这将作为你动态修改内容绑定
+0

我实际上不得不使用Ext.select,因为我正在使用CSS选择器而不是单个节点ID,但原理起作用。 – 2012-01-10 14:45:06

+0

如何在面板上使用tpl而不是dataview来添加事件? – digz6666 2012-07-31 04:56:41

相关问题