Es ist sehr einfach, Ereignis--Listener mit jquery zu binden und zu entbinden. Aber wenn Sie mehrere Listener an ein Ereignis eines Elements gebunden haben, wie können Sie dann die Bindung eines der Listener genau aufheben? Wir müssen den Namespace des Ereignisses verstehen.
Sehen Sie sich den folgenden Code an:
$(“#element”) .on(“click”, doSomething) .on(“click”, doSomethingElse);
Binden Sie Ereignis-Listener wie oben. Wenn auf das Element geklickt wird, werden sowohl doSomething- als auch doSomethingElse-Listener ausgelöst. Dies ist eine praktische Verwendung von jQuery. Sie können jederzeit verschiedene Listener zum gleichen Ereignis eines Elements hinzufügen. Im Gegensatz zur Verwendung von onclick überschreibt der neue Listener den alten.
Wenn Sie einen der Zuhörer, z. B. doSomething, entbinden möchten, wie geht das?
Ist das so?
$(“#element”).off(“click”);
Achtung! Die obige Codezeile entbindet alle Listener für das Klickereignis des Elements, was nicht das gewünschte Ergebnis ist.
Glücklicherweise kann die .off()-Methode von jQuery einen zweiten Parameter akzeptieren, genau wie .on() . Solange der Name der Listener--Funktion als zweiter Parameter an die .off()-Methode übergeben wird, kann die Bindung des angegebenen Listeners aufgehoben werden.
$(“#element”).off(“click”, doSomething);
Aber wenn Sie den Namen dieser Funktion nicht kennen oder eine anonyme Funktion verwenden:
$(“#element”) .on(“click”, function() { console.log(“doSomething”); });
Anleitung Lösen Sie es genau. Wie wäre es mit der Bindung eines Click-Event-Listeners? Es ist Zeit, mehr über den Event-Namespace von jQuery zu erfahren!
Zuerst der Code:
$(“#element”) .on(“click.myNamespace”, function() { console.log(“doSomething”); });
Hier geht es nicht nur darum, das Click-Ereignis als Parameter an die .on()-Methode zu übergeben, sondern einen Namespace für das Click-Ereignis anzugeben und dieses dann zu überwachen Klicken Sie auf ein Ereignis im Namespace. Selbst wenn der Listener zu diesem Zeitpunkt eine anonyme Funktion ist, ist er tatsächlich „benannt“. Jetzt können Sie den Ereignis-Listener wie folgt von einem bestimmten Namespace entbinden.
$(“#element”).off(“click.myNamespace”);
Dies ist eine weitere praktische und leistungsstarke Funktion, die uns jQuery bietet, und ihre interne Implementierung ist sicherlich interessant!
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des jQuery-Ereignis-Namespace. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!