Unterschied 1: Sie können alle Elemente, die vom JQuery-Objekt abgeglichen werden, mit Trigger aufrufen.
// Beispiel1 für Trigger. Alle 3 Button-Klick-Ereignisse werden ausgelöst, wenn der Trigger verwendet wird. // Versuchen Sie, die Triggermethode durch triggerHandler() zu ersetzen. Sie werden sehen, dass nur der erste Button-Element-Event-Handler ausgelöst wird.
<button id = "button1">button1</button>
<button id = "button2">button2</button>
<button id = "button3">button3</button>
$("#button1").on("click", function(){
alert("button1 clicked");
});
$("#button2").on("click", function(){
alert("button2 clicked");
});
$("#button3").on("click", function(){
alert("button3 clicked");
});
// Ersatz-Trigger mit triggerHandler um zu sehen, den Unterschied
$("#button1, #button2, #button3").trigger("click");
Unterschied 2: wenn triggerHandler() für ein Element Ereignis verwenden, das native Ereignis wird nicht für dieses Element aufgerufen werden. trigger() funktioniert einwandfrei.
// Beispiel:
// Ersatz-Trigger mit triggerHandler den Unterschied
<button id = "button1">button1</button>
<button id = "button2">button2</button>
$("#button1").on("click", function(){
$("#button2").trigger('click');
});
$("#button3").on("click", function(){
var value = $("#button2").triggerHandler('click');
alert('my value:'+ value)
});
$("#button2").on('click', function(){
alert("button2 clicked");
});
Difference 3 zu sehen: Trigger() return Jquery Objekt während triggerHandler() geben den letzten Wert oder Griff wenn keine Handler ausgelöst werden, gibt es nicht definiert
// Example3
<button id="button1">Button1</button>
<button id="button2">Button2</button>
<button id="button3">Button3</button>
$("#button1").on("click", function(){
var myValue = $("#button2").trigger('click');
alert(myValue);
});
$("#button3").on("click", function(){
var value = $("#button2").triggerHandler('click');
alert('my value:'+ value)
});
$("#button2").on('click', function(){
alert("button2 clicked");
return true;
});
Anderer Unterschied ist
Ereignisse ausgelöst mit triggerHandler() nicht Blase die DOM-Hierarchie; Wenn sie nicht direkt vom Zielelement verarbeitet werden, tun sie nichts.
Die Dokumente sind, warum ich die Frage in erster Linie gestellt habe. Ich verstehe das Verhalten, aber ich bin neugierig, ob dies eine Komfortfunktion ist oder es einen tieferen Grund gibt, warum es existiert. –
Sie sind ernsthaft abgelehnt worden, weil Sie die Beispiele in den Dokumenten nicht verstehen. Okay, lass mich dann für dich buchstabieren. – Robert
Sie müssen nicht upvote, Sie können überhaupt nicht abstimmen ... Ich gab Ihnen mehr Beispiele und Sie verstehen immer noch nicht, was nicht meine Schuld ist. In einigen Fällen möchten Sie bei einem tatsächlichen Klick nicht false zurückgeben, daher ist # 1 gültig. # 2 Yeah ... das ist der Punkt, nur einen zu verstecken, aber das gesamte passende Array aufzurufen. Sie können alsoInterval so einstellen, dass das Ausblenden von # 3 aktiviert wird. Siehe # 1, mit der Vorstellung, dass Sie verschiedene Aktionen basierend auf tatsächlichen Klicks vs simuliert haben möchten. # 4 Wenn Sie den vom letzten tatsächlichen Ereignis zurückgegebenen Wert wünschen, ohne einen neuen zu erstellen. – Robert