Heim >Web-Frontend >js-Tutorial >Detaillierte Beispiele für die Verwendung der jQuery.die()-Funktion

Detaillierte Beispiele für die Verwendung der jQuery.die()-Funktion

巴扎黑
巴扎黑Original
2017-06-30 14:00:031461Durchsuche

Die Funktion

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

Die Funktion die() wird hauptsächlich zum Entsperren der durch die Funktion live() gebundenen Ereignisverarbeitungsfunktion verwendet.

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

Syntax

Diese Funktion wurde in jQuery 1.3 hinzugefügt. Sie wurde ab jQuery 1.7 als veraltet markiert und in jQuery 1.9 entfernt. Es gibt hauptsächlich die folgenden zwei Verwendungsformen:

Verwendung 1: jQuery 1.4.1 unterstützt neu die Angabe keiner Parameter.

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

Entfernen Sie den Event-Handler-Funktionshandler, der an das Events-Ereignis des Elements gebunden ist, das dem aktuellen Selektor entspricht.

Verwendung 2: jQuery 1.4.3 unterstützt diese Verwendung neu.

jQueryObject.die( eventsMap )

Nutzungsvariante 1, wird verwendet, um mehrere Event-Handler mehrerer Event-Typen gleichzeitig zu entfernen. eventsMap ist ein Objekt, jedes Attribut wird auf die Parameterereignisse in Methode 1 angewendet und der Wert wird auf den Parameterhandler in Methode 1 angewendet.

Parameter

Parameterbeschreibung

events Optional/String-Typ Ein oder mehrere Ereignistypen, getrennt durch Leerzeichen und optionalen Namespace, zum Beispiel „click“, „Fokusklick“, „keydown.myPlugin“.

Handler optional/Ereignisbehandlungsfunktion, angegeben durch Funktionstyp. Der Typ

eventsMap Objektklasse ist ein Objektobjekt , jedes seiner Attribute entspricht dem Ereignistyp und dem optionalen Namespace (Parameterereignisse) und der Attributwert entspricht die gebundene Event-Handling-Funktion (Parameter-Handler).

Namespace Der durch den String-Typ angegebene Namespace, z. B. „.foo“, „.myPlugin“.

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

Der Selektor des aktuellen jQuery-Objekts, das die Funktion die() aufruft, muss mit dem Selektor des jQuery-Objekts übereinstimmen, das die Funktion live() aufruft.

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

die()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 die() 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 Verwenden Sie dann die Funktion die(), um die Ereignisbindung 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.live( "click", btnClick1 );
// 为所有button元素的click事件绑定事件处理函数btnClick2
$buttons.live( "click", btnClick2 );
// 为所有a元素绑定click、mouseover、mouseleave事件
$("a").live( "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.die( "click", btnClick2 );
// 移除所有button元素的click事件绑定的所有事件处理函数(btnClick1和btnClick2)
// 点击按钮,不会执行任何事件处理函数
// $buttons.die("click");
//注意: $("#btn1").die("click"); 无法移除btn1的点击事件,调用die()函数的jQuery对象的选择器与调用live()函数的jQuery对象的选择器必须一致。
// 移除所有a元素的任何事件绑定的所有处理函数
// $("a").die( );

Darüber hinaus kann die Funktion die() auch nur die Ereignisbindung des angegebenen Namespace entfernen.

var $buttons = $(":button");
// 为所有button元素的click事件绑定事件处理函数
$buttons.live( "click.foo.bar", function btnClick1(){
    alert( "click-1" );
} );
// 为所有button元素的click事件绑定事件处理函数
$buttons.live( "click.test.bar", function btnClick1(){
    alert( "click-2" );
} );
// 移除包含命名空间foo的click事件绑定的事件处理函数
$buttons.die( "click.foo" ); // 移除click-1
//移除包含命名空间bar的click事件绑定的事件处理函数
// $buttons.die( "click.bar" ); // 移除click-1和click-2
//移除包含命名空间test的click事件绑定的事件处理函数
// $buttons.die( "click.test" ); // 移除click-2
// 移除所有button元素的click事件绑定的所有事件处理函数
// $buttons.die("click"); // 移除click-1和click-2

Das obige ist der detaillierte Inhalt vonDetaillierte Beispiele für die Verwendung der jQuery.die()-Funktion. 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