Есть ли способ настроить прослушиватель событий, чтобы он захватывал событие, запущенное jQuery? Я хочу использовать только обычный (ванильный) JavaScript для прослушивания события.Прослушать событие jQuery без jQuery
Я создал следующий пример:
(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
, не влечет за собой. В чем причина этого и как я могу заставить его работать?
Имеет ли значение, если вы добавилиEventListener после регистрации триггеров? –
Может быть, это связано с этим? http://stackoverflow.com/questions/18823872/jquery-dispatchevent-wrapper-method – Danilo