Как вручную вызвать делегированное событие с помощью jQuery?Jquery

Программирование на jquery
Ответить
Гость
 Как вручную вызвать делегированное событие с помощью jQuery?

Сообщение Гость »


Есть ли способ с помощью jQuery вручную вызвать обработчик делегированных событий?

Возьмем следующий пример кода:

​ $('.контейнер') .on('click', '[type=button]', function(e) { $(e.delegateTarget).find('.output').text($(this).val()); }) .find('[type=button]').triggerHandler('click');​ (Интернет: http://jsfiddle.net/TcHBE/)

Я ожидал, что это сработает и текст «Привет» появится в диапазоне без фактического нажатия кнопки, но это не так.

Я использую e.delegateTarget внутри обработчика, поскольку элемент .ouput не будет находиться в известном отношении к кнопке, кроме некоторого места внутри .container. Именно поэтому я в первую очередь использую делегированный обработчик событий.

Обновление:

Кроме того, я использую triggerHandler, поскольку в реальном коде событие имеет поведение по умолчанию, которое я не хочу запускать. (В реальном коде событие представляет собой пользовательское событие hide плагина Bootstrap Modal, но на самом деле я не хочу скрывать модальное окно при запуске обработчика событий при загрузке страницы).

Я мог бы извлечь обработчик в именованную функцию и вызвать ее напрямую, но из-за использования e.delegateTarget это усложнило бы конструкцию How.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»