Metoden triggerHandler
Metoden triggerHandler lar deg kjøre
alle hendelseshåndterere knyttet til et element. Den
fungerer på samme måte som metoden
trigger,
men det finnes forskjeller mellom dem:
Hendelseshåndtereren vil utløses, men standard
hendelse vil ikke bli utløst. For eksempel
triggerHandler('submit'),
vil, når den utløses, ikke kalle submit.
Metoden triggerHandler virker
kun på det første elementet i settet.
Hendelser utløst av triggerHandler
bobler ikke opp i DOM-elementhierarkiet.
triggerHandler returnerer ikke et jQuery-objekt,
den returnerer verdien hentet fra den sist
utløste håndtereren. Hvis ingen håndterere blir
utløst, returnerer den undefined.
Syntaks
Som første parameter kan vi sende hendelsestypen som en streng, den andre valgfrie er en matrise eller et objekt som inneholder tilleggsparametere for å sende til håndtereren:
$(selector).triggerHandler(hendelsestype, [tilleggsparametere]);
Man kan sende en hendelse
som et objekt jQuery.Event som første parameter:
$(selector).trigger(hendelse, [tilleggsparametere]);
Eksempel
La oss gjøre slik at når du klikker på knappen
med #test1 vil vårt input-felt få fokus og
konsollen vil logge 'Focused', med andre
ord - både håndtererfunksjonen og fokushendelsen
vil utløses. Når du klikker på den andre knappen
med #test2 vil kun håndtererfunksjonen utløses,
men input-feltet vil ikke få fokus:
<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')
});