在DOMNodeInserted上每个元素仅显示一次警报

时间:2018-11-21 09:09:58

标签: jquery

我有一个按钮,用于创建一个带有“ mynewdiv”类的div。该div可以根据用户的喜好进行多次破坏和重新创建。

我想像这样插入div时添加一个事件侦听器:

$('body').on('DOMNodeInserted', 'div.mynewdiv', function () {
    alert('hi');
});

但是,每次插入div时,警报框都会触发多次。

我正在使用无法更改的第三方插件-因此使用了事件监听器。 jQuery中是否有办法仅触发一次警报?

我尝试在事件监听器上使用.one,但这实际上使它触发一次,而不是每次插入触发一次。

我可以创建一个计数器,但是我希望有一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

基本修正:

var firedOnce = false;
$('body').on('DOMNodeInserted', 'div.mynewdiv', function () {
  if (firedOnce == false) {
    alert('hi');
    firedOnce = true;
  }
});