我需要听WooCommerce的自定义事件,例如wc_fragment_refresched
或added_to_cart
。但是,当通过本机创建这些事件的侦听器时,addEventListener
什么也没有发生。但是jQuery的.on()
效果很好。
加工:
jQuery(document.body).on('wc_fragments_refreshed', function() {
console.log("hehey!");
});
无法运作:
document.body.addEventListener('wc_fragments_refreshed', function() {
console.log("hoho!");
});
有谁知道为什么本地监听器不起作用?
区别在于,addEventListener()
它不侦听jQuery触发的事件。要引发该事件处理程序,您需要使用dispatchEvent
on document.body
。
下面是一个例子。请注意,jQuery会触发两次,因为它确实处理两个事件触发器。
// jQuery
$(document.body).on('wc_fragments_refreshed', function() {
console.log("jQuery handled the event");
}).trigger('wc_fragments_refreshed');
// Native
document.body.addEventListener('wc_fragments_refreshed', function() {
console.log("POJS handled the event");
});
document.body.dispatchEvent(new Event('wc_fragments_refreshed'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句