2015-04-15 3 views
2

У меня возникли проблемы с пониманием пользовательских триггеров событий. У меня есть некоторый код, чтобы вызвать пользовательское событие на всех элементах (согласно документации)JQuery Пользовательские события триггеров

$.event.trigger('modal:close',[$d]); 

$d является объектом JQuery

, если я связываю к документу как так:

$(document).on('modal:close',function(event,element) { 
    console.log('Triggered'); 
}); 

Затем мой обработчик называется протоколированием «Triggered» на консоль. Однако, если я привяжу его к определенному элементу, например:

$("#foo").on('modal:close',function(event,element) { 
    console.log('Triggered'); 
}); 

Тогда триггер никогда не попадает и ничего не регистрируется.

Я пропустил что-то из документов в том, что $ .event.trigger ('foo') не вызывает указанное событие на ВСЕХ элементах, которые могут быть прослушаны или нет?

Заранее спасибо

+0

кажется поднять событие на обоих элементах в скрипкой: http://jsfiddle.net/ogmo5dL5/. Можете ли вы предоставить дополнительную информацию о своем коде. –

+0

Он пытается вызвать его с помощью $ .event.trigger ('modal: close', [$ d]); который только запускается для документирования. – Robin

+0

Ваш код отличается от моего. Вот моя версия обновлена ​​на вашей скрипке http://jsfiddle.net/ogmo5dL5/1/ – user3169851

ответ

0

Оказывается, что документация является неправильной и запуск всех элементов не доступно в современном JQuery-х. На данный момент я предложил внедрить шаблон публикации/подписки и позаботиться об этом, пока не найду лучшее решение.

0

Это будет работать:

$d.trigger('modal:close'); 
Смежные вопросы