在没有jQuery的情况下收听jQuery事件
有没有办法设置事件监听器,所以它捕获jQuery触发的事件? 我想只使用普通(vanilla)JavaScript来收听事件。
我已经设置了以下示例:
(function($) { $(document).on('sent_jquery_rec_jquery', function () { console.log('sent_jquery_rec_jquery'); }); $(document).on('sent_vanilla_rec_jquery', function () { console.log('sent_vanilla_rec_jquery'); }); document.addEventListener('sent_vanilla_rec_vanilla', function () { console.log('sent_vanilla_rec_vanilla'); }); document.addEventListener('sent_jquery_rec_vanilla', function () { console.log('sent_jquery_rec_vanilla'); }); document.dispatchEvent(new Event("sent_vanilla_rec_vanilla")); document.dispatchEvent(new Event("sent_vanilla_rec_jquery")); $(document).trigger('sent_jquery_rec_jquery'); $(document).trigger('sent_jquery_rec_vanilla'); }(jQuery));
接收和记录的三个事件是:
- sent_vanilla_rec_vanilla
- sent_vanilla_rec_jquery
- sent_jquery_rec_jquery
当事件通过$(document).trigger
,使用document.addEventListener
设置的事件监听器不会启动。原因是什么,以及如何使其工作?
JQuery 显然使用自定义事件系统 ,因此您无法使用常规事件侦听器来侦听jQuery事件。 前面提到的票证提到IE <9作为罪魁祸首,也许jQuery 3或4可以进行切换。