2011-06-13 97 views
0

我通過模板來創建內部Ext.Panel一個新的元素click事件

我想,如果我把一個點擊事件添加至P#更多元素

Ext.select('#more').on('click', function() { 
// my code 
}); 

內的Ext.Panelhandler: function()它的工作原理

但後來我更新裏面的面板和事件不再工作的HTML!

有沒有新創建的DOM元素的監聽器我可以把我的點擊事件裏面?

回答

0

當您替換HTML時,附加到子節點的所有事件都保持鏈接到它們,但節點不再存在於DOM中。

而且事件也不會神奇地翻譯成新節點。

如果替換HTML,則需要將事件附加到將保留的父節點。 這被稱爲事件委託。

您需要使用targetsrcElement(IE)來獲取觸發事件的元素,如:

Ext.select('#parent-of-more').on('click', function(ev) { 
    var elm = ev.target || ev.srcElement; 
    //elm is the element that was clicked 
});