从新创建的元素中删除事件

时间:2015-10-17 00:10:43

标签: javascript jquery

如何将事件移除到新创建的元素,让我说我无法控制该动态元素,因为它是从插件生成的,并且我无法在此期间删除事件插件初始化。

所以在这种情况下,我想在页面加载时使用touchmove删除jQuery("#dynamic_element")元素中名为.off("touchmove")的事件。

jQuery("#dynamic_element").off("touchmove")

是否有任何jQuery方法可用于轮询DOM中添加的动态元素是否已准备好进行操作?

我计划主要针对iOS设备。

非常感谢您的想法。

1 个答案:

答案 0 :(得分:1)

使用MutationObserver(IE11,FF,CH,SA iOS 7)

的解决方案
var mo = new MutationObserver(function(e){
   e.forEach(function(record) {
       var addedNodes = Array.prototype.slice.call(record.addedNodes);           
       var dynamicElements = addedNodes.filter(function(e) { 
           return e.id && e.id === "dynamic_element";
       });

      if (dynamicElements.length) {
         jQuery(dynamicElements[0]).off("touchmove");
      }
   });
});

mo.observe(document.documentElement, { subtree: true,  childList: true });