2012-01-09 99 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

相關問題