Метод triggerHandler - выполнение всех обработчиков событий, привязанных к элементу

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

Синтаксис

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

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

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

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

Пример

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

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

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

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



Чат с GPT Компилятор