Metóda triggerHandler
Metóda triggerHandler umožňuje spustiť
všetky obslužné funkcie udalostí priradené k elementu. Funguje
analogicky k metóde
trigger,
ale medzi nimi existujú rozdiely:
Obslužná funkcia udalosti sa vykoná, ale štandardná
udalosť nebude spustená. Napríklad
triggerHandler('submit'),
po vykonaní, nespustí submit.
Metóda triggerHandler pôsobí
len na prvý prvok v množine.
Udalosti spustené triggerHandler
nevybublávajú v hierarchii DOM elementov.
triggerHandler nevracia objekt jQuery,
vracia hodnotu získanú z poslednej
vyvolanej obslužnej funkcie. Ak sa nevykoná žiadna obslužná funkcia,
vráti undefined.
Syntax
Ako prvý parameter môžeme odovzdať typ udalosti vo forme reťazca, druhým voliteľným poľom alebo objektom, ktorý obsahuje dodatočné parametre na odovzdanie obslužnej funkcii:
$(selektor).triggerHandler(typ udalosti, [dodatočné parametre]);
Prvým parametrom je možné odovzdať udalosť
vo forme objektu jQuery.Event:
$(selektor).trigger(udalosť, [dodatočné parametre]);
Príklad
Urobme to tak, že po kliknutí na tlačidlo
s #test1 náš vstup poľa získa focus a do
konzoly sa vypíše 'Focused', inými
slovami - vykoná sa aj funkcia-obslužná funkcia aj
udalosť focus. Po kliknutí na druhé tlačidlo
s #test2 sa vykoná len funkcia-obslužná funkcia,
ale vstup pole nezíska focus:
<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')
});