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

标签 javascript jquery

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

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

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

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

我计划主要针对 iOS 设备。

我们将非常感谢您的想法。

最佳答案

使用 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 });

关于javascript - 从新创建的元素中删除事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33181285/

相关文章:

javascript - 改进进口...来自

javascript - 在javascript中查询dynamodb日期范围

javascript - 聚焦文本区域时出现不需要的滚动

jquery - 将 ASP.NET Web 表单发送到 JQuery 自动完成的最佳实践

javascript - 带有标记日期的日历

javascript - 无法从外部 PHP 文件中的 AJAX 调用读取 POST 数组

javascript - 自定义下载名称 <a href> 标签

Javascript 井字游戏获胜者检查

javascript - 如何使用asp.net mvc解决Ajax.BeginForm调用两次

javascript - 在表单中动态显示数据