在Sencha touch中进行html更新后点击新元素上的事件

时间:2011-06-13 10:00:11

标签: javascript sencha-touch extjs

我通过模板

在Ext.Panel中创建一个新元素

我想将一个点击事件添加到p#more元素

如果我把:

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

handler: function()内的Ext.Panel

但随后我更新了面板内的html,事件不再有效了!!!

是否有一个新创建的DOM元素的监听器,我可以将我的click事件放在里面?

1 个答案:

答案 0 :(得分: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
});