Die Funktion
off() wird verwendet, um die Funktion Ereignisbehandlung eines oder mehrerer an ein Element gebundener Ereignisse zu entfernen. Die Funktion
off() wird hauptsächlich zum Entsperren der durch die Funktion on() gebundenen Ereignisverarbeitungsfunktion verwendet.
Diese Funktion gehört zum jQuery-Objekt (Instanz).
Syntax
Diese Funktion wurde in jQuery 1.7 hinzugefügt. Es gibt hauptsächlich die folgenden zwei Verwendungsformen:
Verwendung eins:
jQueryObject.off( [ events [, selector ] [, handler ] ] )
Verwendung zwei:
jQueryObject.off( eventsMap [, selector ] )
Parameter
Parameterbeschreibung
events Optional/String-Typ Ein oder mehrere durch Leerzeichen getrennte Ereignistypen und optionaler Namespace, wie „click“, „focus click“, „keydown.myPlugin“.
eventsMap-Objekttyp ist ein Objektobjekt, jedes seiner Attribute entspricht dem Ereignistyp und dem optionalen Namespace (Parameterereignisse) und der Attributwert entspricht der gebundenen Ereignisverarbeitungsfunktion (Parameter). Behandler).
selector Optional/String-Typ Ein jQuery-Selektor, der verwendet wird, um anzugeben, welche untergeordneten Elemente gebundene Ereignisse auslösen können. Wenn dieser Parameter null ist oder weggelassen wird, bedeutet dies, dass das aktuelle Element selbst an das Ereignis gebunden ist (der eigentliche Auslöser kann auch ein untergeordnetes Element sein, solange der Ereignisstrom das aktuelle Element erreichen kann).
Handler optional/Ereignisbehandlungsfunktion, angegeben durch Funktionstyp. Die Funktion
off() entfernt den Event-Handler des Events-Ereignisses, das an den Nachkommenelementselektor des aktuell übereinstimmenden Elements gebunden ist.
Wenn der Selektorparameter weggelassen wird, wird der an ein beliebiges Element gebundene Ereignishandler entfernt.
Der Parameterselektor muss mit dem Selektor übereinstimmen, der beim Hinzufügen der Bindung über die Funktion on() übergeben wird.
Wenn der Parameter-Handler weggelassen wird, werden alle an den angegebenen Ereignistyp des angegebenen Elements gebundenen Ereignishandler entfernt.
Wenn alle Parameter weggelassen werden, bedeutet dies, dass alle Event-Handler aller Event-Typen entfernt werden, die an ein beliebiges Element des aktuellen Elements gebunden sind.
Rückgabewert
off()Der Rückgabewert der Funktion ist vom Typ jQuery und gibt das aktuelle jQuery-Objekt selbst zurück.
Tatsächlich handelt es sich bei den Parametern der Funktion off() um Filterbedingungen. Nur Ereignisbehandlungsfunktionen, die allen Parameterbedingungen entsprechen, werden entfernt. Je mehr Parameter vorhanden sind, desto mehr Qualifikationen sind vorhanden und desto kleiner ist der Bereich, der entfernt wird.
Beispiel und BeschreibungBitte beachten Sie den folgenden anfänglichen HTML-Code: Zuerst binden wir Ereignisse an die oben genannten Schaltflächen und -Elemente und verwenden dann die Funktion off(), um die Bindung des Ereignisses aufzuheben: Funktion btnClick1(){alarm( this.value + "-1" );}Funktion btnClick2(){ Alert( this .value + "-2" );}var $body = $("body");// Binden Sie das Klickereignis von alle Schaltflächenelemente Ereignisbehandlungsfunktion btnClick1$body.on("click", ":button", btnClick1 );// Ereignisbehandlungsfunktion btnClick2$body.on("click", ":button", btnClick2 );
//Binde Klick-, Mouseover- und Mouseleave-Ereignisse für alle a-Elemente
$ body. on("click Mouseover Mouseleave", "a", function(event){
if( event.type == "click" ){
warning("click event") ;
}else if( event.type == "mouseover" ){
$(this).css("color", "red");
} else{
$(this).css("color", "blue"); Die Ereignishandlerfunktion btnClick2 ist an das Klickereignis aller Schaltflächenelemente gebunden
// Klicken Sie auf die Schaltfläche, btnClick1 führt weiterhin
$body.off("click", ":button", btnClick2) ;
// Alle an das Click-Ereignis von gebundenen Event-Handler (btnClick1 und btnClick2) aus alle Schaltflächenelemente nach dem Körperelement
// Durch Klicken auf die Schaltfläche wird kein Ereignishandler ausgeführt
// $body.off("click", ":button");
// Hinweis: $body.off("click", "#btn1"); kann nicht verschoben werden. Mit Ausnahme des Click-Ereignisses von btn1 muss der durch die Funktion off() angegebene Selektor mit dem übergebenen Selektor übereinstimmen durch die Funktion on().
// Alle Handler entfernen, die durch das Body-Element an das Klickereignis aller Elemente (einschließlich Schaltfläche und -Elemente) gebunden sind.
// Durch Klicken auf eine Schaltfläche oder einen Link wird das nicht ausgelöst Ausführung einer beliebigen Event-Handling-Funktion
// $("body").off("click");
// Alle Event-Bindungen des Body-Elements für alle Elemente entfernen Verarbeitungsfunktion
// Das Klicken auf eine Schaltfläche, das Klicken auf einen Link oder das Bewegen der Maus in/aus einem Link löst nicht die Ausführung einer Ereignisverarbeitungsfunktion aus
// $("body").off( );
Führen Sie den Code aus (bitte kopieren Sie andere Codes zur Ausführung auf die Demoseite)
Darüber hinaus kann die Funktion off() auch nur die Ereignisbindung des angegebenen Namespace entfernen.
var $btn1 = $("#btn1");
$btn1.on("click.foo.bar", function(event){
warning( "click-1");
});
$btn1.on("click.test", function(event){
warning("click-2 ");
});
$btn1.on("click.test.foo", function(event){
warning("click-3") ;
});
$btn1.off("click.test"); // Klick-2 entfernen, Klick-3
// $btn1 aus ("click.foo"); // Click-1, Click-3 entfernen
// $btn1.off("click.foo.bar"); // Click-1 entfernen
// $btn1.off("click"); // Alle Click-Event-Handler entfernen (click-1, click-2, click-3)
// $btn1 off(".foo "); // Alle Event-Handler entfernen, die den Namespace foo enthalten, nicht nur Click-Events
Das obige ist der detaillierte Inhalt vonMachen Sie sich mit der detaillierten Verwendung der Funktion jQuery.off() vertraut. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!