Метод 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')
});