我使用以下代码(从另一个主题中窃取)。我正在使用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();
}
});
});
如何让观察者不止一次观察?