Событие события jQuery для всех слушателей
У меня есть настраиваемое событие, которое я создал, которое я хотел бы вызвать в какой-то момент, не имеющее никакого отношения к выбору.
I.E - Я хотел бы сделать что-то, что будет вести себя как работающий
$("*").trigger('customEvent');
Но документация jQuery предупреждает, что использование универсального селектора очень медленное.
Есть ли способ вызвать все объекты, привязанные к определенному событию, без использования универсального селектора $("*")
?
Спасибо!
P.S - В настоящее время я использую конкретный class
под названием custom_event_listener
и использую $('.custom_event_listener').trigger('customEvent')
, чтобы избежать использования универсального селектора. Мне интересно, есть ли способ избежать использования class
.
Ответы
Ответ 1
Вы можете инициировать событие для всего, что связано с обработчиком:
$.event.trigger('customEvent');
Это проходит через $.cache
, чтобы найти то, что на самом деле имеет обработчик, затем запускает эти элементы... вместо того, чтобы просто найти каждый элемент и активировать событие на каждом из них.