Methode triggerHandler
Die Methode triggerHandler ermöglicht es,
alle an ein Element gebundenen Ereignishandler auszulösen. Sie
funktioniert ähnlich wie die Methode
trigger,
aber es gibt Unterschiede zwischen ihnen:
Der Ereignishandler wird ausgelöst, aber das Standard-
Ereignis wird nicht ausgeführt. Zum Beispiel wird
triggerHandler('submit'),
wenn es ausgelöst wird, nicht submit aufrufen.
Die Methode triggerHandler wirkt
nur auf das erste Element im Set.
Ereignisse, die durch triggerHandler ausgelöst werden,
steigen nicht in der DOM-Element-Hierarchie auf.
triggerHandler gibt kein jQuery-Objekt zurück,
sondern den Wert, der vom zuletzt aufgerufenen
Handler erhalten wurde. Wenn keine Handler ausgelöst werden,
gibt es undefined zurück.
Syntax
Als ersten Parameter können wir den Ereignistyp als Zeichenkette übergeben, als zweiten optional ein Array oder Objekt, das zusätzliche Parameter für die Übergabe an den Handler enthält:
$(Selector).triggerHandler(Ereignistyp, [zusätzliche Parameter]);
Es kann als ersten Parameter ein Ereignis
in Form eines jQuery.Event-Objekts übergeben werden:
$(Selector).trigger(Ereignis, [zusätzliche Parameter]);
Beispiel
Lassen Sie uns so einrichten, dass beim Klicken auf die Schaltfläche
mit #test1 unser Input den Fokus erhält und in
der Konsole 'Focused' ausgegeben wird, mit anderen
Worten - sowohl der Handler als auch
das Fokus-Ereignis werden ausgelöst. Beim Klicken auf die zweite Schaltfläche
mit #test2 wird nur der Handler ausgelöst,
aber der Input erhält keinen 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')
});