A triggerHandler metódus
A triggerHandler metódus lehetővé teszi
az elemhez kötött összes eseménykezelő elindítását. Hasonlóan működik, mint a
trigger
metódus, de különbségek vannak közöttük:
Az eseménykezelő aktiválódik, de a standard
esemény nem indul el. Például a
triggerHandler('submit')
lefut, de nem indít el submit eseményt.
A triggerHandler metódus csak
az első elemre hat a halmazban.
A triggerHandler által indított
események nem terjednek tovább a DOM-elemek hierarchiájában.
A triggerHandler nem jQuery objektumot ad vissza,
hanem az utoljára meghívott kezelő által visszaadott értéket.
Ha egyetlen kezelő sem aktiválódik, akkor undefined-ot ad vissza.
Szintaxis
Első paraméterként átadhatjuk az esemény típusát sztring formájában, második opcionális paraméterként egy tömböt vagy objektumot, amely további paramétereket tartalmaz az eseménykezelő számára:
$(selector).triggerHandler(eseménytípus, [további paraméterek]);
Első paraméterként átadhatunk egy
jQuery.Event objektumot is:
$(selector).trigger(esemény, [további paraméterek]);
Példa
Tegyük fel, hogy ha a #test1 azonosítójú gombra kattintunk,
a bemeneti mezőnk fókuszt kap, és a konzolra kiíródik a 'Focused' üzenet,
más szavakkal - mind a függvény-kezelő, mind a
fókusz esemény aktiválódik. Ha a második gombra
kattintunk a #test2 azonosítóval, csak a függvény-kezelő aktiválódik,
de a bemeneti mező nem kap fókuszt:
<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')
});