事件侦听器DOMNodeInserted被多次运行,为什么?

理查德·斯金纳

我正在尝试侦听某个具有动态添加到DOM中的特定类的节点。一旦添加了该节点,我想向该节点添加一个插件实例。我遇到的问题是DOMNodeInserted运行多次,然后在此Node上多次运行我的插件,这导致了问题。

页面上只有一次此类的出现。

为什么会这样,我该如何阻止这种情况的发生?

    $(document).ready(function(){

    $('#editArea').live('DOMNodeInserted', '.class', function(e){

        $('.class').plugin({
            source: 'libs/ajax/somescript.php',
        });

    })

});
hmqcnoesy

可能是因为在您的DOM中,无论您要监视的元素是什么,都有子元素。该事件会为匹配元素(.class触发一次,并为每个后代触发一次

如果您需要监视selectoption元素就像是在其下的一堆元素,那么一种快速而肮脏的解决方案可能是监视可以在DOM中放置的另一个“伙伴”元素。例如:

$(document).ready(function(){
    $('#editArea').on('DOMNodeInserted', '#classbuddy', function(e){
        $('.class').plugin({
            source: 'libs/ajax/somescript.php',
        });
    })
});

然后,在标记中,您只需添加带有的空白元素即可id="classbuddy"因为该范围没有子元素,所以您的代码只会触发一次,因此.plugin()只能应用一次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么onmessage侦听器不处理最初的SSE事件?

为什么侦听器列表是列表?

为什么此侦听器无法检测到窗口关闭事件?

为什么JavaScript类中的事件侦听器会看到旧的上下文变量?

为什么RxJS主题比多个事件侦听器快?

为什么将单独的“粘贴”事件侦听器都粘贴到相同的<div>?

通过addEventListener添加的事件侦听器被多次调用

函数在添加事件侦听器后运行了太多次

为什么我应该在Laravel中使用事件和侦听器

为什么重用片段时事件侦听器会消失?

为什么DOM元素仅在事件侦听器完成后才更新?(纯js)

OnChild事件侦听器被多次调用

为什么更新状态未反映在事件侦听器中:React Native,Hooks

为什么在注册事件侦听器并触发事件侦听器之前调用滚动事件?

为什么第二个事件侦听器不触发?

使用事件侦听器检测更改时,为什么图标类没有更改?

不能多次调用FileReader事件侦听器

什么是实现长时间运行的事件侦听器的最佳方法

为什么mousedown事件侦听器通过函数运行?

事件侦听器多次调用Javascript函数

为什么事件侦听器无法读取属性?

为什么jQuery中的click事件侦听器会存在多种变体?

jQuery事件侦听器多次触发

Liferay IPC侦听器运行多次

事件侦听器可多次用于Ajax驱动的html

为什么在主窗口中打印后会触发打印事件侦听器后的 iframe?

React keydown 事件侦听器被多次调用?

为什么在单击事件侦听器内触发 click() 不会导致无限循环?

为什么反应事件侦听器正在保存状态?