Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在每次将具有特定类的元素添加到DOM时触发脚本?_Javascript_Jquery_Mutation Observers - Fatal编程技术网

Javascript 如何在每次将具有特定类的元素添加到DOM时触发脚本?

Javascript 如何在每次将具有特定类的元素添加到DOM时触发脚本?,javascript,jquery,mutation-observers,Javascript,Jquery,Mutation Observers,我有一个修改特定类的div的函数,但问题是这些div是由第三方WP插件动态加载和卸载的,我无法修改,并且没有可以绑定的单击操作。这些div可能在任何给定的时间点出现和消失,它们位于一组更复杂的元素中。该插件首先在页面加载时加载一个div,然后单击将其他div加载到其中。这些内部div是定时的,它们在超时时消失,加载另一组div等等。我试图修改的内容在单击时不在第一组中,因此我无法绑定到该单击 从我在StackOverflow和其他地方的研究中,我了解到将突变事件与DOMNodeInserted之

我有一个修改特定类的div的函数,但问题是这些div是由第三方WP插件动态加载和卸载的,我无法修改,并且没有可以绑定的单击操作。这些div可能在任何给定的时间点出现和消失,它们位于一组更复杂的元素中。该插件首先在页面加载时加载一个div,然后单击将其他div加载到其中。这些内部div是定时的,它们在超时时消失,加载另一组div等等。我试图修改的内容在单击时不在第一组中,因此我无法绑定到该单击

从我在StackOverflow和其他地方的研究中,我了解到将突变事件与
DOMNodeInserted
之类的东西一起使用的旧方法已被弃用,应该使用突变观察者,但我无法理解它

我试着修改我在其他问题的答案中找到的代码,但对我来说不起作用

我使用的逻辑是观察pageload
.modal survey container
上加载的第一个包装器div,然后,每当它加载新div时,如果我的实际目标
.msnumericanswer
在子树中,我的函数就会启动。到目前为止,我已经尝试过:

var $j = jQuery;

$j(document).ready(function callback(records) {
  records.forEach(function (record) {
    var list = record.addedNodes;
    var l = list.length - 1;

    for ( ; l > -1; l-- ) {
      if (list[l].nodeClass === '.msnumericanswer') {
        $j('.msnumericanswer').each(function(i, obj) {
          var t = $j(obj).data('tooltip');
          $j(obj).prepend('<div class="labels">' + t + '</div>');
        });
        console.log(list[l]);
      }
    }
  });
  setTimeout(5000);
});

var observer = new MutationObserver(callback);
var targetNode = document.querySelectorAll(".modal-survey-container");
observer.observe(targetNode, { attributes: true, childList: true, subtree: true });
这也不起作用,但我看不出有任何错误


我做错了什么?

添加您正在使用的调查库。很可能会有更好的东西可以使用(=事件)。您是否已将第一个代码段加载到
文档中。就绪
。另外,应该是在加载
.modal survey container
之后,您收到的错误提到您正在向观察者提供一个非HTML节点元素。@Ma'mounothman说得对。我确实使用了
document.ready
,现在我添加了一个超时。控制台错误已更改,但仍不起作用。我正在更新问题中的详细信息。@Andreas什么是库,如何添加?