Kürzlich habe ich festgestellt, dass jQuery das native click-Ereignis auf einem Anker-Tag nicht auslösen kann, wenn ich auf andere Elemente klicke, das folgende Beispiel funktioniert nicht:
html
%Vor%JavaScript
%Vor%Und hier ist die jsfiddle - 1 . Klicken Sie auf den ersten Link wird nicht ausgelöst nativen Klick auf den zweiten.
Nach einigen Suchen fand ich eine Lösung und eine Erklärung.
Verwenden Sie das native DOM-Element.
%Vor%Und hier ist die jsfiddle - 2 .
Ich habe einen Beitrag zu Learn jQuery gefunden: Auslösende Ereignishandler . Es sagte mir:
Die Funktion .trigger () kann nicht dazu verwendet werden, native Browserereignisse nachzuahmen, z. B. durch Klicken auf ein Dateieingabefeld oder ein Anker-Tag. Dies liegt daran, dass kein Event-Handler mit dem Ereignissystem von jQuery verbunden ist, das diesen Ereignissen entspricht.
Also hier kommt meine Frage:
Wie kann man verstehen? Es gibt keinen Event-Handler, der mit dem Ereignissystem von jQuery verbunden ist, das diesen Ereignissen entspricht ?
Warum gibt es keinen entsprechenden Event-Handler?
Ich update meine jsfiddles, es scheint, dass es ist und Fehler auf den Klassennamen.
Es gibt keinen Event-Handler, der mit dem Ereignissystem von jQuery verbunden ist, das diesen Ereignissen entspricht
Dies bedeutet, dass zu diesem Zeitpunkt des Lernmaterials keine jQuery-Ereignisbehandlungsroutinen diesen Elementen mit .click(function() {}
oder .bind('click', function () {})
usw. angehängt wurden.
Das fehlende Argument .click()
wird verwendet, um ein "Klick" -Ereignis aus der Perspektive von jQuery auszulösen ( .trigger('click')
), das alle von jQuery registrierten "click" -Ereignisbehandlungsroutinen mit .click
, .bind
,% ausführt co_de%, usw. Dieses Pseudo-Ereignis wird nicht an den Browser gesendet.
.trigger ()
Führt alle Handler und Verhaltensweisen aus, die den übereinstimmenden Elementen für den angegebenen Ereignistyp zugeordnet sind.
Überprüfen Sie das aktualisierte jsFiddle-Beispiel und klicken Sie auf die beiden Links, um den Unterschied zu sehen. Hoffe es hilft.
Ich glaube, Sie haben vergessen, die Dokumentation zu lesen.
Dokument sagt:
%Vor%Zuerst müssen Sie das Standardverhalten von link
verhindern %Vor% Und um das Klick-Ereignis auszulösen, können Sie auch .trigger('click')
better way
Und der Event-Handler wird wie folgt verwendet:
%Vor%Tags und Links javascript jquery