Metodo triggerHandler
Il metodo triggerHandler consente di attivare
tutti i gestori di eventi associati a un elemento. Funziona
analogamente al metodo
trigger,
ma tra loro esistono differenze:
Il gestore di eventi verrà attivato, ma l'evento
standard non verrà generato. Ad esempio
triggerHandler('submit'),
una volta attivato, non causerà submit.
Il metodo triggerHandler agisce
solo sul primo elemento nel set.
Gli eventi attivati da triggerHandler
non risalgono nella gerarchia degli elementi DOM.
triggerHandler non restituisce un oggetto jQuery,
restituisce il valore ottenuto dall'ultimo
gestore chiamato. Se nessun gestore viene
attivato, restituisce undefined.
Sintassi
Come primo parametro possiamo passare il tipo di evento come stringa, come secondo (opzionale) un array o un oggetto contenente parametri aggiuntivi da passare al gestore:
$(selettore).triggerHandler(tipo evento, [parametri aggiuntivi]);
Si può passare come primo parametro un evento
sotto forma di oggetto jQuery.Event:
$(selettore).trigger(evento, [parametri aggiuntivi]);
Esempio
Facciamo in modo che quando si clicca sul pulsante
con #test1 il nostro input ottenga il focus e
in console venga stampato 'Focused', in altre
parole - verranno attivati sia la funzione gestore che
l'evento di focus. Quando si clicca sul secondo pulsante
con #test2 verrà attivata solo la funzione gestore,
ma l'input non otterrà il 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')
});