triggerHandler-metodi
triggerHandler-metodi mahdollistaa kaikkien
elementtiin liitettyjen tapahtumankäsittelijöiden käynnistämisen. Se
toimii samankaltaisesti kuin
trigger-metodi,
mutta niiden välillä on eroja:
Tapahtumankäsittelijä laukeaa, mutta vakio
tapahtumaa ei kutsuta. Esimerkiksi
triggerHandler('submit'),
laukaisee, mutta ei kutsu submit-tapahtumaa.
triggerHandler-metodi vaikuttaa
vain ensimmäiseen elementtiin joukossa.
triggerHandler:n käynnistämät tapahtumat
eivät kuplaile DOM-elementtien hierarkiassa.
triggerHandler ei palauta jQuery-oliota,
vaan se palauttaa viimeksi kutsutun käsittelijän saaman arvon.
Jos mitään käsittelijöitä ei kutsuta, se palauttaa undefined:n.
Syntaksi
Ensimmäisenä parametrina voimme siirtää tapahtumatyyppin merkkijonona, toisena valinnaisena taulukon tai objektin, joka sisältää lisäparametreja käsittelijälle siirrettäväksi:
$(valitsin).triggerHandler(tapahtumatyyppi, [lisäparametrit]);
Voit siirtää ensimmäisenä parametrina tapahtuman
jQuery.Event-objektin muodossa:
$(valitsin).trigger(tapahtuma, [lisäparametrit]);
Esimerkki
Tehdään niin, että kun painetaan painiketta
jossa on #test1, syötekenttämme saa kohdistuksen ja
konsoliin tulostuu 'Focused', toisin
sanoen - sekä käsittelijäfunktio että
kohdistustapahtuma laukeavat. Kun painetaan toista painiketta
jossa on #test2, laukeaa vain käsittelijäfunktio,
mutta syötekenttä ei saa kohdistusta:
<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')
});