不使用jQuery触发自定义事件

我用jQuery triggerHandler()触发了一些DOM事件

    stackoverflow     $(document).ready(function() { $(document).on('hey', function(customEvent, originalEvent, data) { console.log(customEvent.type + ' ' + data.user); // hey stackoverflow }); // how to this in vanilla js $(document).triggerHandler('hey', [{}, { 'user': 'stackoverflow' }]) });    

如何在没有jQuery的情况下触发这个?

重要提示 :我需要知道事件类型和自定义数据

如果你想要精确复制jQuery的行为,你可能最好挖掘jQuery source code

如果您只想进行正常的事件调度和侦听,请参阅CustomEvent以了解如何使用自定义数据调度事件,并参阅addEventListener以了解如何侦听事件。

你的例子可能看起来像

 document.addEventListener('hey', function(customEvent) { console.log(customEvent.type + ' ' + customEvent.detail.user); // hey stackoverflow }); document.dispatchEvent(new CustomEvent('hey', {'detail': {'user': 'stackoverflow'}})); 

您可以使用自定义事件并在所需元素上调度它们。