Heim >Web-Frontend >js-Tutorial >Ausführliche Erläuterung der Verwendung und Vorsichtsmaßnahmen der Funktion jQuery.unbind()

Ausführliche Erläuterung der Verwendung und Vorsichtsmaßnahmen der Funktion jQuery.unbind()

巴扎黑
巴扎黑Original
2017-06-25 15:13:412156Durchsuche

Die Funktion

unbind() wird verwendet, um die Funktion Ereignisbehandlung eines oder mehrerer Ereignisse zu entfernen, die an das übereinstimmende Element gebunden sind.

Die Funktion unbind() wird hauptsächlich zum Aufheben der Bindung der durch die Funktion bind() gebundenen Ereignisverarbeitungsfunktion verwendet.

Diese Funktion gehört zum jQuery-Objekt (Instanz).

Syntax

Die Funktion unbind() hat hauptsächlich die folgenden zwei Verwendungsformen:

Verwendung 1:

jQueryObject.unbind( [ events [, handler ]] )

Entfernen Sie den Event-Handler-Funktionshandler, der an das Ereignisse-Ereignis des aktuell übereinstimmenden Elements gebunden ist.

Verwendung 2:

jQueryObject.unbind( eventObject )

ist das von der angegebenen Ereignisverarbeitungsfunktion übergebene Ereignisobjekt, das zum Entfernen der entsprechenden Ereignisverarbeitungsfunktion verwendet wird .

Parameter

Parameterbeschreibung

Ereignisse Optional/StringTyp Ein oder mehrere Ereignistypen, getrennt durch Leerzeichen und optionaler Namespace , wie „click“, „focus click“, „keydown.myPlugin“.

Handler optional/Ereignisbehandlungsfunktion, angegeben durch Funktionstyp.

eventObject Objektklasse ist ein Ereignisobjekt, das zum Entfernen der an das Objekt übergebenen Ereignisverarbeitungsfunktion verwendet wird.

jQuery 1.4.3 unterstützt neu den Parameter-Handler, der falsch sein kann. Die Event-Handler-Funktion wird verwendet, um das gebundene Ereignis zu entfernen, wenn der Handler-Parameter falsch ist.

Wenn der Parameter-Handler weggelassen wird, werden alle Event-Handler entfernt, die an Ereignisse des angegebenen Typs gebunden sind, der mit dem Element übereinstimmt.

Wenn alle Argumente weggelassen werden, werden alle Ereignishandler für das übereinstimmende Element für jeden Ereignistyp entfernt, der an ein beliebiges Element gebunden ist.

Rückgabewert

unbind()Der Rückgabewert der Funktion ist vom Typ jQuery und gibt das aktuelle jQuery-Objekt selbst zurück.

Tatsächlich sind die Parameter der Funktion unbind() alle Filterbedingungen, und 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 Beschreibung

Bitte beziehen Sie sich auf den folgenden anfänglichen HTML-Code:

<input id="btn1" type="button" value="点击1" />
<input id="btn2" type="button" value="点击2" />
<a id="a1" href="#">CodePlayer</a>

Zuerst binden wir Ereignisse an die obige Schaltfläche und 3499910bf9dac5ae3c52d5ede7383485 Dann verwenden Sie die Funktion unbind(), um die Bindung des Ereignisses aufzuheben. Der entsprechende Code lautet wie folgt:

function btnClick1(){
    alert( this.value + "-1" );
}
function btnClick2(){
    alert( this.value + "-2" );
}
var $buttons = $(":button");
// 为所有button元素的click事件绑定事件处理函数btnClick1
$buttons.bind( "click", btnClick1 );
// 为所有button元素的click事件绑定事件处理函数btnClick2
$buttons.bind( "click", btnClick2 );
// 为所有a元素的click、mouseover、mouseleave事件绑定事件处理函数
$("a").bind( "click mouseover mouseleave", function(event){
    if( event.type == "click" ){
        alert("点击事件");
    }else if( event.type == "mouseover" ){
        $(this).css("color", "red");
    }else{
        $(this).css("color", "blue");       
    }
});
// 移除为所有button元素的click事件绑定的事件处理函数btnClick2
// 点击按钮,只执行btnClick1
$buttons.unbind("click", btnClick2);
// 移除为所有button元素的click事件绑定的所有事件处理函数(btnClick1和btnClick2)
// 点击按钮,不会执行任何事件处理函数
// $buttons.unbind("click");
// 只移除为btn1元素的click事件绑定的所有事件处理函数
 // btn2元素的click事件仍然有效
// $("#btn1").unbind("click");
// 移除为所有a元素的任何事件绑定的所有处理函数
// 点击链接,或用鼠标在链接上移入、移出,都不会触发执行任何事件处理函数
// $("a").unbind( );

Die Funktion unbind() kann auch Funktionen basierend auf dem eingehenden Ereignisobjekt entfernen. Der folgende jQuery-Code lässt das Eingabeaufforderungsfeld nur dann erscheinen, wenn zum ersten Mal auf die Schaltfläche [Klick 1] geklickt wird, und entfernt dann das Klickereignis sofort.

var $btn1 = $("#btn1");
$btn1.bind("click", function(event){
    alert("只执行一次!");
    $(this).unbind( event ); // 移除当前事件处理函数  
});
此外,unbind()函数还可以只移除指定命名空间的事件绑定。
var $buttons = $(":button");
// 为所有button元素的click事件绑定事件处理函数
$buttons.bind( "click.foo.bar", function btnClick1(){
    alert( "click-1" );
} );
// 为所有button元素的click事件绑定事件处理函数
$buttons.bind( "click.test.bar", function btnClick1(){
    alert( "click-2" );
} );
// 移除包含命名空间foo的click事件绑定的事件处理函数
$buttons.unbind( "click.foo" ); // 移除click-1
//移除包含命名空间bar的click事件绑定的事件处理函数
// $buttons.unbind( "click.bar" ); // 移除click-1和click-2
//移除包含命名空间test的click事件绑定的事件处理函数
// $buttons.unbind( "click.test" ); // 移除click-2
// 移除所有button元素的click事件绑定的所有事件处理函数
// $buttons.unbind("click"); // 移除click-1和click-2

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Verwendung und Vorsichtsmaßnahmen der Funktion jQuery.unbind(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn