在没有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可以进行切换。