在绑定事件的过程中,不仅可以为同一个元素绑定多个事件,也可以为多个元素绑定同一个事件。假设网页上有一个<button>元素,使用以下代码为该元素绑定多个相同的事件。

<script type="text/javascript">$(function(){$('#btn').bind("click", function(){$('#test').append("<p>我的绑定函数1</p>");}).bind("click", function(){$('#test').append("<p>我的绑定函数2</p>");}).bind("click", function(){$('#test').append("<p>我的绑定函数3</p>");});})
</script><body>
<button id="btn">点击我</button>
<div id="test"></div>
</body>

当单击按钮后,会出现如上图所示的效果。

1. 移除按钮元素上所有注册的事件

添加一个移除事件的按钮。然后为按钮绑定一个事件,代码如下:

<script type="text/javascript">$(function(){$('#btn').bind("click", function(){$('#test').append("<p>我的绑定函数1</p>");}).bind("click", function(){$('#test').append("<p>我的绑定函数2</p>");}).bind("click", function(){$('#test').append("<p>我的绑定函数3</p>");});$('#delAll').click(function(){$('#btn').unbind("click");});})
</script><body>
<button id="btn">点击我</button>
<div id="test"></div>
<button id="delAll">删除所有事件</button>
</body>

因为元素绑定的都是 click 事件,所以不写参数也可以达到同样的目的。

$('#delAll').click(function(){$('#btn').unbind();
});

下面来看看 unbind() 方法的语法结构:unbind([type] , [data]);

第1个参数是事件类型,第2个参数是将要移除的函数,具体说明如下。

(1) 如果没有参数,则删除所有绑定的事件。

(2) 如果提供了事件类型作为参数,则只删除该类型的绑定事件。

(3) 如果把在绑定时传递的处理函数作为第2个参数,则只有这个特定的事件处理函数会被删除。

2. 移除<button>元素的其中一个事件

首先需要为这些匿名处理函数指定一个变量。然后就可以单独删除某一个事件了, jQuery 代码如下:

<script type="text/javascript">$(function(){$('#btn').bind("click", myFun1 = function(){$('#test').append("<p>我的绑定函数1</p>");}).bind("click", myFun2 = function(){$('#test').append("<p>我的绑定函数2</p>");}).bind("click", myFun3 = function(){$('#test').append("<p>我的绑定函数3</p>");});$('#delTwo').click(function(){$('#btn').unbind("click",myFun2);});})
</script><body>
<button id="btn">点击我</button>
<div id="test"></div>
<button id="delTwo">删除第二个事件</button>
</body>

当单击“删除第二个事件”按钮后,再次单击“点击我”按钮,显示下图所示的效果。

另外,对于只需要触发一次,随后就要立即解除绑定的情况,jQuery 提供了一种简写方法——one() 方法。 one() 方法可以为元素绑定处理函数。当处理函数触发一次后,立即被删除。即在每个对象上,事件处理函数只会被执行一次。

one() 方法的结构与 bind() 方法类似,使用方法也与 bind() 方法相同,其语法结构如下:one( type, [data], fn );

示例代码如下:

<script type="text/javascript">$(function(){$('#btn').one("click", function(){$('#test').append("<p>我的绑定函数1</p>");}).one("click", function(){$('#test').append("<p>我的绑定函数2</p>");}).one("click", function(){$('#test').append("<p>我的绑定函数3</p>");});})
</script><body>
<button id="btn">点击我</button>
<div id="test"></div>
</body>

使用one() 方法为<button>元素绑定单击事件后,只在用户第1次单击按钮时,处理函数才执行,之后的单击毫无作用。

转载于:https://www.cnblogs.com/jwen1994/p/10568301.html

jQuery 移除事件相关推荐

  1. js 添加和移除onclick事件(通过匿名函数实现)及jquery 移除事件

    2019独角兽企业重金招聘Python工程师标准>>> 代码如下: //移除事件  document.getElementById('mobile-a').οnclick=funct ...

  2. JQuery移除事件

    移除事件 unbind(type [,data])     //data是要移除的函数 $('#btn').unbind("click"); //移除click $('#btn') ...

  3. html移除click事件绑定,带你了解JQuery中绑定事件(bind())和移除事件(unbind())...

    本文主要向大家详细介绍了jQuery的绑定事件和移除事件的使用方法和示例分享,这里推荐给有需要的小伙伴们参考下. 有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理.比如bind()(绑定事 ...

  4. jQuery bind(绑定事件)前别忘了unbind(移除事件)

    效果图: 代码 <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" ...

  5. jquery 点击事件点击元素添加和移除class

    jquery 点击事件点击元素添加和移除class 怎么实现点击一个元素给它添加class,再点击一个元素移除上一个元素的class,再给现在点击的元素添加class <div class=&q ...

  6. jquery unbind 异步_JQuery中绑定事件(bind())和移除事件(unbind())

    有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理.比如bind()(绑定事件)和unbind()(移除通过bind()方法添加的事件)方法来移除事件的效果. 比如下面的一个案例: $(fu ...

  7. jQuery绑定事件监听bind和移除事件监听unbind用法实例详解

    这里分别采用后bind(eventType,[data],Listener)//data为可选参数,one()该方法绑定的事件触发一次后自动删除,unbind(eventType,Listener), ...

  8. jQuery 移除元素的事件

    jQuery 移除元素的事件 移除行内事件 $("el").removeAttr("onclick") 移除绑定事件 $("el").unb ...

  9. JQuery 给DOM控件绑定和移除事件的方法

    绑定事件: Method 1 $("#myElement").click( function() { alert($(this).text()); }); Method 2 $(& ...

  10. jQuery on(绑定事件)前别忘了off(移除事件)

    废话不多说直接上代码,用到的自己运行看效果 <!DOCTYPE html> <html> <head><title></title> < ...

最新文章

  1. 占失物,笔记本电脑电池
  2. OC对象 vs CF对象
  3. JS-图片其他事件-Event对象-事件委托-DOM对象
  4. jenkins集成gitlab
  5. 华为Mate 20 X 5G版本月起全球开卖:国内上市的首款5G手机
  6. supervisor管理mysql靠谱吗_Supervisor 从入门到放弃
  7. C++最普通的定时器功能实现
  8. Android Robolectric 加载运行本地 So 动态库
  9. sonar扫描android项目配置 mac版
  10. DOM技术对xml增删改查后更新源文件异常报错
  11. matlab基于瑞利信道,一种基于MATLAB的瑞利信道仿真方法研究
  12. DPCM差分预测编码原理及实现
  13. 剧情插件Cutscene Creator uSequencer 1.3.7.1使用说明二
  14. 软件需求的三个层次——业务需求、用户需求和功能需求的区别
  15. 银行春招:六大行薪资待遇知多少?(上)
  16. Ray在蚂蚁大规模生成落地中的优化与实践
  17. Python ABC(抽象基类)
  18. 查看docker与宿主机网卡的对应关系,tcpdump在容器外网络抓包
  19. Vue过滤器-filter
  20. 用jquery实现隐藏列表表单的显示关闭切换以及Ajax方式改动提交相应的那一行的改动内容。...

热门文章

  1. android网络配置
  2. [ZJOI2008]生日聚会
  3. unbuffered low level IO 和 bufferd IO
  4. NLP 事件抽取综述(中)—— 模型篇
  5. 自然语言处理在金融实时事件监测和财务快讯中的应用
  6. 深度学习2.0-36.循环神经网络RNN-时间序列表示方法
  7. Jetpack来了:走近Google标准应用架构
  8. 微软官方的《Power BI权威指南》译版发售
  9. Looper中的睡眠等待与唤醒机制
  10. Android应用程序组件Content Provider简要介绍和学习计划 .