2011-06-13 91 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 
});