MutationObserver覆盖最新的突变

时间:2018-05-17 08:20:56

标签: javascript mutation-observers

我试图等到Mutation事件开始重写刚收到的值。在我尝试正常应用它之前,它仍然被我无法控制的第三方提供的其他值所覆盖。

int

尝试此代码后,我认为它进入循环导致我的Chrome冻结并且内存开始快速增加

有没有办法阻止Mutations中的连续调用?

1 个答案:

答案 0 :(得分:1)

您可以随时致电observer.disconnect

暂停您的变异观察者

因此,根据您的使用情况,您可能会执行以下操作:

var MutationObserver = window.WebKitMutationObserver;

var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
        console.log("Override existent new found top value with -> " + newHeight);
        $(".select2-drop-active").css({'top':newHeight+"px"});
    });
    observer.disconnect();
    console.log('pausing the observer');
    // If needed for your use case, start observing in 1 second
    setTimeout(() => observer.observe(), 1000);
});