浅析jquery unbind()方法移除元素绑定的事件

 更新时间:2016年05月24日 10:19:31   投稿:jingxian  
下面小编就为大家带来一篇浅析jquery unbind()方法移除元素绑定的事件。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

unbind()方法可以移除元素已绑定的事件,它的调用格式如下:

$(selector).unbind(event,fun)

其中参数event表示需要移除的事件名称,多个事件名用空格隔开,fun参数为事件执行时调用的函数名称。

语法 

unbind()函数主要有以下两种形式的用法:

用法一:

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

移除当前匹配元素的events事件绑定的事件处理函数handler。

用法二:

jQueryObject.unbind( eventObject )

为指定事件处理函数传入的Event对象,用于移除对应的事件处理函数。

参数

参数 描述

events 可选/String类型一个或多个用空格分隔的事件类型和可选的命名空间,例如"click"、"focus click"、"keydown.myPlugin"。

handler 可选/Function类型指定的事件处理函数。

eventObject Object类型一个Event对象,用于移除传入该对象的事件处理函数。

jQuery 1.4.3 新增支持参数handler可以为false。用于移除绑定事件时,handler参数为false值的事件处理函数。

如果省略参数handler,则移除匹配元素指定类型的事件上绑定的所有事件处理函数。

如果省略了所有参数,则表示移除匹配元素上为任何元素绑定的任何事件类型的任何事件处理函数。 

返回值

unbind()函数的返回值为jQuery类型,返回当前jQuery对象本身。

实际上,unbind()函数的参数全是筛选条件,只有匹配所有参数条件的事件处理函数都将被移除。参数越多,限定条件就越多,被移除的范围就越小。 

示例&说明 

请参考下面这段初始HTML代码:

 

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

首先,我们为上述button和<a>元素绑定事件,然后使用unbind()函数解除事件绑定,相应的代码如下:

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( ); 
unbind()函数还可以根据传入的事件对象来移除函数。以下jQuery代码只允许第一次点击按钮【点击1】时弹出提示框,之后立即移除该点击事件。
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 

以上这篇浅析jquery unbind()方法移除元素绑定的事件就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于jquery的button默认enter事件(回车事件)。

    基于jquery的button默认enter事件(回车事件)。

    这里我介绍一下,button按钮默认回车(enter)事件。如果大家可以用submit,就不用看以下代码,因为submit可以直接默认回车事件(enter)
    2011-05-05
  • 非常有用的40款jQuery 插件推荐(系列二)

    非常有用的40款jQuery 插件推荐(系列二)

    jQuery 是一个非常优秀的 JavaScript 框架,在现在的 Web 开发项目中扮演着重要角色。jQuery 使用简单灵活,同时还有许多成熟的插件可供选择,它可以帮助你在项目中加入一些非常好的效果,让网站有更好的可用性和用户体验
    2011-12-12
  • jQuery中:selected选择器用法实例

    jQuery中:selected选择器用法实例

    这篇文章主要介绍了jQuery中:selected选择器用法,实例分析了:selected选择器的功能、定义及匹配被选择的<option>元素的使用技巧,需要的朋友可以参考下
    2015-01-01
  • jQuery旋转插件jqueryrotate用法详解

    jQuery旋转插件jqueryrotate用法详解

    这篇文章主要介绍了jQuery旋转插件jqueryrotate用法,结合实例形式详细分析了jqueryrotate插件的功能、定义及相关参数的使用方法,需要的朋友可以参考下
    2016-10-10
  • jQuery Easyui datagrid/treegrid 清空数据

    jQuery Easyui datagrid/treegrid 清空数据

    这篇文章主要介绍了jQuery Easyui datagrid/treegrid 清空数据的相关资料
    2016-07-07
  • Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法

    Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法

    本文主要讲解的是在做项目中遇到需要Enter回车切换输入焦点的解决思路以及最终解决方案,很简单,需要的朋友可以参考下
    2014-09-09
  • jquery 校验中国身份证号码实例详解

    jquery 校验中国身份证号码实例详解

    这篇文章主要介绍了jquery 校验中国身份证号码实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • jQuery与JS加载事件用法分析

    jQuery与JS加载事件用法分析

    这篇文章主要介绍了jQuery与JS加载事件用法,结合实例形式分析了jQuery与JS加载事件的执行顺序与使用技巧,需要的朋友可以参考下
    2016-09-09
  • JQuery AJAX操作代码

    JQuery AJAX操作代码

    jQuery底层AJAX实现,其返回其创建的XMLHttpRequest对象,大多数情况下无需直接操作该函数,除非需要操作不常用的选项,以获得更多的灵活性,这篇文章给大家介绍JQuery AJAX操作代码,感兴趣的朋友一起看看吧
    2022-12-12
  • 日常收藏的jquery技巧

    日常收藏的jquery技巧

    jQuery是继prototype 之后的又一个优秀的Javascript框架,本篇文章给大家分享收藏的jquery技巧,对jquery技巧相关知识感兴趣的朋友一起学习吧
    2015-12-12

最新评论