The
die() function is used to remove the event handling function of one or more events bound to the matching element.
The die() function is mainly used to unblock the event processing function bound by the live() function.
This function belongs to the jQuery object (instance).
Syntax
This function was added in jQuery 1.3. It was marked as obsolete starting from jQuery 1.7 and was removed in jQuery 1.9. It mainly has the following two forms of usage:
Usage 1: jQuery 1.4.1 adds support for not specifying any parameters.
jQueryObject.die( [ events [, handler ]] )
Remove the event handler function handler bound to the events event of the element matching the current selector.
Usage 2: jQuery 1.4.3 newly supports this usage.
jQueryObject.die( eventsMap )
A variation of usage 1, used to remove multiple event handlers of multiple event types at the same time. eventsMap is an object. Each attribute corresponds to the parameter events in the application method one, and the value corresponds to the parameter handler in the application method one.
Parameters
If the parameter handler is omitted, all event handlers bound to events of the specified type matching the element will be removed.
The selector of the current jQuery object that calls the die() function must be consistent with the selector of the jQuery object that calls the live() function.
If all parameters are omitted, it means to remove any event handlers on the matching element for any event type bound to any element.
Return value
die()The return value of the function is of jQuery type and returns the current jQuery object itself.
In fact, the parameters of the die() function are all filtering conditions, and only event processing functions that match all parameter conditions will be removed. The more parameters there are, the more qualifications there are and the smaller the range that is removed.
Example & Description
Please refer to the following initial HTML code:
<input id="btn1" type="button" value="点击1" /> <input id="btn2" type="button" value="点击2" /> <a id="a1" href="#">CodePlayer</a>
首先,我们为上述button和元素绑定事件,然后使用die()函数解除事件绑定,相应的代码如下:
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( );
此外,die()函数还可以只移除指定命名空间的事件绑定。
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
The above is the detailed content of Detailed analysis of jQuery.die() function. For more information, please follow other related articles on the PHP Chinese website!