【问题标题】:click event on new element after html update in Sencha touchSencha touch中的html更新后新元素上的单击事件
【发布时间】:2011-06-13 10:00:10
【问题描述】:

我通过模板在 Ext.Panel 中创建了一个新元素

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

如果我说:

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

Ext.Panelhandler: function() 内,它可以工作

但后来我更新了面板内的 html,事件不再起作用!!!

是否有新创建的 DOM 元素的侦听器,我可以将点击事件放入其中?

【问题讨论】:

    标签: javascript sencha-touch extjs


    【解决方案1】:

    当您替换 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
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      相关资源
      最近更新 更多