MutationObserver只能工作一次

时间:2017-09-25 11:18:24

标签: javascript jquery wordpress mutation-observers

我使用以下代码(从另一个主题中窃取)。我正在使用WooCommerce,当您更改购物车中的数量以更新购物车时,它使用AJAX。因此,我正在使用此功能在更新购物车时运行我自己的自定义功能。

一切正常 - 但只有一次。这意味着如果用户将产品数量从5-6更改,则观察者工作并运行myFunction()。但如果我再次尝试改变数量,它就不会再听了。

$(function() {
    (function($) {
        var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

        $.fn.attrchange = function(callback) {
            if (MutationObserver) {
                var options = {
                    subtree: false,
                    attributes: true
                };

                observer = new MutationObserver(function(mutations) {
                    mutations.forEach(function(e) {
                        callback.call(e.target, e.attributeName);
                    });
                });

                return this.each(function() {
                    observer.observe(this, options);
                });

            }
        }
    })(jQuery);

    $(".woocommerce-cart-form").attrchange(function(attrName) {
        if(attrName == "class" && !$(this).hasClass("processing")) {
            myFunction();
        }
    });
});

如何让观察者不止一次观察?

0 个答案:

没有答案