Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 如何确定是否调用了突变?_Javascript_Ajax_Mutation Observers - Fatal编程技术网

Javascript 如何确定是否调用了突变?

Javascript 如何确定是否调用了突变?,javascript,ajax,mutation-observers,Javascript,Ajax,Mutation Observers,我在下面有一个突变观察函数。问题是,如果满足“false”的条件,console.log将在浏览器中记录多次。我认为解决这个问题的最好方法是在这里添加一些东西,如果遇到变异,就不要运行函数 添加mutationObserver.disconnect()时不执行此操作在else if条件之后是实现这一点的最佳方法吗 window.addEventListener('DOMContentLoaded', (event) => {

我在下面有一个突变观察函数。问题是,如果满足“false”的条件,console.log将在浏览器中记录多次。我认为解决这个问题的最好方法是在这里添加一些东西,如果遇到变异,就不要运行函数

添加mutationObserver.disconnect()时不执行此操作在else if条件之后是实现这一点的最佳方法吗

            window.addEventListener('DOMContentLoaded', (event) => {
            
            // Listening to Class Changes //
            var mutationObserver = new MutationObserver(function (mutations) {
                mutations.forEach(function (mutation) {
                    var change = mutation.target.classList.contains('hidden-class');
                    if (change === true) {
                        return true;
                    }
                    else if (change === false) {
                        console.log('this mutation is visible');
                        }
                });
            })
            mutationObserver.observe(document.getElementById('cart-wrapper'), {
                attributes: true,
                characterData: true,
                childList: true,
                subtree: true,
                attributeOldValue: true,
                characterDataOldValue: true
            });

        });

使用
.some
迭代突变,查看目标的类列表是否包含该类:

var mutationObserver = new MutationObserver(function (mutations) {
  const somethingJustMutatedIsHidden = mutations.some(
    mutation => mutation.target.classList.contains('hidden-class')
  );
  if (somethingJustMutatedIsHidden) {
    // do something?
  } else {
    console.log('this mutation is visible');
  }
})
请记住,
forEach
忽略其返回值;您当前拥有的
返回true
没有任何作用