Методот triggerHandler
Методот triggerHandler овозможува да се стартуваат
сите обработувачи на настани, прикачени на елементот. Тој
работи аналогно на методот
trigger,
но помеѓу нив постојат разлики:
Обработувачот на настани ќе се активира, но стандардниот
настан нема да се повика. На пример
triggerHandler('submit'),
активирајќи се, нема да повика submit.
Методот triggerHandler дејствува
само на првиот елемент во множеството.
Настаните, започнати со triggerHandler
не се шират во хиерархијата на DOM-елементите.
triggerHandler не враќа jQuery објект,
тој враќа вредност, добиена од последниот
повикан обработувач. Доколку не се активираат обработувачи,
тогаш враќа undefined.
Синтакса
Како прв параметар можеме да пренесеме тип на настан во вид на стринг, втор опционален низа или објект, кој содржи дополнителни параметри за пренесување на обработувачот:
$(селектор).triggerHandler(тип на настан, [дополнителни параметри]);
Може првиот параметар да се пренесе настан
во вид на објект jQuery.Event:
$(селектор).trigger(настан, [дополнителни параметри]);
Пример
Ајде да направиме така што при кликнување на копчето
со #test1 нашиот input да добие фокус и во
конзолата да се испечати 'Focused', со други
зборови - ќе се активира и функцијата-обработувач и
настанот за фокус. При кликнување на второто копче
со #test2 ќе се активира само функцијата-обработувач,
но input нема да добие фокус:
<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')
});