Метод triggerHandler

Метод triggerHandler позволяет запустить все обработчики событий, привязанные к элементу. Он работает аналогично методу trigger, но между ними существуют отличия: Обработчик событий сработает, но стандартное событие не будет вызвано. К примеру triggerHandler('submit'), сработав, не вызовет submit. Метод triggerHandler действует только на первый элемент в наборе. События, запущенные triggerHandler не в сплывают в иерархии DOM-элементов. triggerHandler не возвращает объект jQuery, он возвращает значение, полученное последним вызванным обработчиком. Если никакие обработчики не запускаются, то возвращает undefined.

Синтаксис

В качестве первого параметра мы можем передать тип события в виде строки, вторым необязательным массив или объект, содержащим дополнительные параметры для передачи обработчику:

javascript$(селектор).triggerHandler(тип события, [дополнительные параметры]);

Можно первым параметром передать событие в виде объекта jQuery.Event:

javascript$(селектор).trigger(событие, [дополнительные параметры]);

Пример

Давайте сделаем так, что при нажатии на кнопку с #test1 наш инпут получит фокус и в консоли выведется 'Focused', другими словами - сработает и функция-обработчик и событие фокуса. При нажатии на вторую кнопку с #test2 сработает только функция-обработчик, но инпут не получит фокус:

html<button id="test1">button1</button>
<button id="test2">button2</button>
<input type="text">
javascript$('#test1').click(function() {
  $('input').trigger('focus');
});

$('#test2').click(function() {
  $('input').triggerHandler('focus');
});

$('input').focus(function() {
  console.log('Focused')
});

Смотрите также

  • метод trigger,
    который позволяет запустить все обработчики событий, привязанные к элементу для событий заданного типа
  • метод on,
    который позволяет привязать обработчик событий к элементу