在点击按钮后触发变异时,我必须在jQuery中执行两个函数:
function mutate(mutations) {
mutations.forEach(function(mutation) {
function1().done(
function2()
);
});
}
var target = document.querySelector('#identifier')
var observer = new MutationObserver( mutate );
var config = { characterData: false, attributes: false, childList: true, subtree: false };
observer.observe(target, config);
代码工作正常,但是当我点击指定的按钮时,我只期待突变被触发一次;但由于某种原因,突变发生两次,然后代码也执行两次。我无法修改触发变异的代码,因此我只能修改变异处理(上面的代码)。
有没有办法防止每次两次执行?我应该使用forEach的不同方法intead,但是哪一个?
提前致谢
答案 0 :(得分:0)
我找到了一个解决方案:当我点击按钮时,一个节点被移除并突然重新创建。这就是我得到两个突变的原因。
我添加了if
以确保仅在重新创建节点时才进行调用
function mutate(mutations) {
mutations.forEach(function(mutation) {
if(mutation.addedNodes.length > 0 && mutation.removedNodes.length == 0) {
function1().done(
function2()
);
}
});
}