jQuery事件触发所有侦听器

Ben*_*Ben 12 jquery

我有一个我自己制作的自定义事件,我希望在某些时候触发,与选择无关.

IE - 我想做一些表现得像跑步的东西

$("*").trigger('customEvent');
Run Code Online (Sandbox Code Playgroud)

但jQuery文档警告说使用通用选择器非常慢.有没有办法触发绑定到特定事件的所有对象而不必使用通用选择器$("*")

谢谢!

PS - 我目前正在使用特定的class被叫custom_event_listener和使用$('.custom_event_listener').trigger('customEvent')来避免使用通用选择器.我想知道是否有办法避免使用a class.

Nic*_*ver 15

您可以在具有如下处理程序绑定的所有内容上触发事件:

$.event.trigger('customEvent'); 
Run Code Online (Sandbox Code Playgroud)

这循环$.cache查找实际拥有处理程序的内容,然后触发这些元素 ......而不是仅查找每个元素并在每个元素上触发事件.

  • 这是未记载和弃用的:https://github.com/jquery/jquery/blob/935eb19d87063ec30b717b3d45368d3c73cb591d/jquery-migrate.js#L481 (3认同)