我通过模板
在Ext.Panel中创建一个新元素我想将一个点击事件添加到p#more元素
如果我把:
Ext.select('#more').on('click', function() {
// my code
});
在handler: function()
内的Ext.Panel
但随后我更新了面板内的html,事件不再有效了!!!
是否有一个新创建的DOM元素的监听器,我可以将我的click事件放在里面?
答案 0 :(得分:0)
当您替换HTML时,附加到子节点的所有事件都保持链接到它们,但DOM中的节点不再存在。
事件也不会神奇地转换为新节点。
如果替换HTML,则需要将事件附加到将保留的父节点。 这称为事件委托。
您需要使用target
或srcElement
(IE)来获取触发事件的元素,例如:
Ext.select('#parent-of-more').on('click', function(ev) {
var elm = ev.target || ev.srcElement;
//elm is the element that was clicked
});