防止事件重复绑定共有4种方法:

  1. bind()、unbind()方法
  2. live()、die()方法
  3. off()、on()方法
  4. one()方法

  一、bind()、unbind()方法

  bind();绑定事件

  为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。

  从某种角度上讲,bind("click",function(){})与click(function(){})是等价的。

  unbind();移除通过bind()方法添加的事件

  不仅仅对于bind()方法有效,它对于click()方法同样有效。

  $("#btn1").unbind("click").bind("click",function(){
  alert("我是btn1!");
  });
  $("#btn1").unbind().click(function(){
alert("我是btn1!");
});

  二、live()、die()方法

  live();

  jQuery1.3增加了一个live()方法,给所有当前以及将来会匹配的元素绑定一个事件处理函数。

  支持:click,dblclick, mousedown, mouseup等。

  不支持 :blur, focus, mouseenter, mouseleave, change, submit。

  live()一次只能绑定一个事件

    jquery利用了事件的冒泡机制,直接把事件绑定在了document上,然后通过event.target找出事件的来源。

  要移除用live绑定的事件,请用die()方法

  die();

  在jquery里,使用live()来绑定事件,若想移除该事件,要使用die()方法。

  $("#btn1").die("click").live("click",function() {
  alert("我是btn1!");
  });

  三、off()、on()方法

  on();绑定事件。

  从jQuery 1.7开始,on()函数提供了绑定事件处理程序所需的所有功能,用于统一取代以前的bind()、 delegate()、 live()等事件函数。

  即使是执行on()函数之后新添加的元素,只要它符合条件,绑定的事件处理函数也对其有效。

  该函数可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。

  要删除通过on()绑定的事件,请使用off()函数。

  如果要附加一个事件,只执行一次,然后删除自己,请使用one()函数。

  off();解除绑定事件

  off()函数用于移除元素上绑定的一个或多个事件的事件处理函数。

  off()函数主要用于解除由on()函数绑定的事件处理函数。

  on();函数和off();函数的返回值都为jQuery类型,返回当前jQuery对象本身。

  $("#btn1").off("click").on("click",function(){
  alert("我是btn1!");
  });

  四、one();方法

  绑定的事件处理函数只会执行一次。

  $("#btn1").one("click",function(){
  alert("我只执行一次!");
  });

最新文章

  1. Android 指纹认证
  2. javabean和jsp动作元素
  3. Leetcode Simplify Path
  4. Velocity快速入门教程-脚本语法详解(转)
  5. Runner站立会议03
  6. phalcon 前端代码结构
  7. CSU OJ PID=1514: Packs 超大背包问题,折半枚举+二分查找。
  8. GDB使用
  9. IE下空链接失效原因及解决方法
  10. exp、imp简单测试
  11. 杭电OJ—— 1084 What Is Your Grade?
  12. 基于NIOS-II的示波器:PART4 系统调试&测试
  13. Asp.Net MVC 使用 Ajax
  14. 小程序 wx.getRecorderManager 录音 to 语音识别
  15. 【Canal源码分析】Canal Instance启动和停止
  16. Applet web端对文件的读取方式
  17. sql server 2012 减少日志
  18. 自动化发布-GitLab WEB Hooks 配置
  19. 【转】JS windows.open()详解
  20. js怎么样根据select的name取到值

热门文章

  1. SQLite 在 Android 的应用
  2. myeclipse加载buiding workspace慢解决方案
  3. [转载]查看Linux系统硬件信息实例详解
  4. C#第五节课
  5. ThinkPhp5.0 引入全局自定义函数global
  6. python 用PIL Matplotlib处理图像的基本操作
  7. Python 设置字体样式
  8. springboot整合mybatis统一配置bean的别名
  9. QT创建快捷方式
  10. 暑假集训D12总结