Methode triggerHandler
De methode triggerHandler maakt het mogelijk om
alle gebeurtenishandlers die aan het element zijn gekoppeld, uit te voeren. Hij
werkt op dezelfde manier als de methode
trigger,
maar er zijn verschillen tussen hen:
De gebeurtenishandler wordt uitgevoerd, maar de standaard
gebeurtenis wordt niet geactiveerd. Bijvoorbeeld,
triggerHandler('submit'),
zal na uitvoering geen submit activeren.
De methode triggerHandler werkt
alleen op het eerste element in de set.
Gebeurtenissen die door triggerHandler worden gestart,
bubbelen niet op in de hiërarchie van DOM-elementen.
triggerHandler retourneert geen jQuery-object,
het retourneert de waarde die is verkregen door de laatst
uitgevoerde handler. Als er geen handlers worden
uitgevoerd, retourneert het undefined.
Syntaxis
Als eerste parameter kunnen we het gebeurtenistype doorgeven als een string, als tweede optioneel een array of object, dat extra parameters bevat om door te geven aan de handler:
$(selector).triggerHandler(gebeurtenistype, [extra parameters]);
Het is mogelijk om als eerste parameter een gebeurtenis
door te geven in de vorm van een jQuery.Event-object:
$(selector).trigger(gebeurtenis, [extra parameters]);
Voorbeeld
Laten we ervoor zorgen dat wanneer op de knop
met #test1 wordt geklikt,
onze invoer de focus krijgt en in de
console 'Focused' wordt weergegeven, met andere
woorden - zowel de handlerfunctie als
de focusgebeurtenis worden geactiveerd. Wanneer op de tweede knop
met #test2 wordt geklikt, wordt alleen de handlerfunctie uitgevoerd,
maar de invoer krijgt geen 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')
});