Metoden triggerHandler
Metoden triggerHandler låter dig starta
alla händelsehanterare kopplade till elementet. Den
fungerar på samma sätt som metoden
trigger,
men det finns skillnader mellan dem:
Händelsehanteraren kommer att utlösas, men standardhändelsen
kommer inte att aktiveras. Till exempel
triggerHandler('submit'),
kommer, när den utlöses, inte att aktivera submit.
Metoden triggerHandler verkar
endast på det första elementet i uppsättningen.
Händelser som startats av triggerHandler
bubblar inte upp i DOM-elementens hierarki.
triggerHandler returnerar inte ett jQuery-objekt,
den returnerar värdet som erhållits från den senast
anropade hanteraren. Om inga hanterare
aktiveras returneras undefined.
Syntax
Som första parameter kan vi skicka en händelsetyp som en sträng, den andra valfri är en array eller ett objekt som innehåller ytterligare parametrar att skicka till hanteraren:
$(selector).triggerHandler(händelsetyp, [ytterligare parametrar]);
Man kan skicka en händelse som första parameter
i form av ett jQuery.Event-objekt:
$(selector).trigger(händelse, [ytterligare parametrar]);
Exempel
Låt oss göra så att när knappen
med #test1 klickas kommer vår input att få fokus och
'Focused' skrivs ut i konsolen, med andra
ord - både hanterarfunktionen och
fokushändelsen kommer att utlösas. När den andra knappen
med #test2 klickas kommer endast hanterarfunktionen att utlösas,
men input kommer inte att 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')
});