防止事件重复绑定共有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("我只执行一次!");}); 

转载于:https://www.cnblogs.com/youmingkuang/p/9317714.html

jquery事件重复绑定的几种解决方法 (二)相关推荐

  1. js事件重复绑定问题

    先看一个简单的例子吧(为了方便,例子使用jQuery写的): <!doctype html> <html lang="en"> <head>&l ...

  2. 【JQuery】jQuery(document).ready(function($) { });的几种表示方法及load和ready的区别

    jQuery中处理加载时机的几种方式 第一种: jQuery(document).ready(function() {alert("你好"); }); //或 $(document ...

  3. 基于继承类的属性模版中无法绑定的原因和解决方法

    原文:基于继承类的属性模版中无法绑定的原因和解决方法 这个的晚上想学学WPF 做一个类似于ERP 左边菜单.构思一下思路 ...... 创建一个类基于Expander类. 1 public class ...

  4. w ndows10玩游戏蓝屏,Win10系统玩游戏蓝屏提示代码0x0000007E的两种解决方法

    win10系统已经很多用户升级了,但是还是有不少用户在使用Ghost win10系统电脑的过程中经常遇到蓝屏问题,最近有位朋友在Win10系统玩游戏时出现蓝屏代码0x0000007E,显示一大串英文, ...

  5. android中view手势滑动冲突的两种解决方法

    android中view手势滑动冲突的解决方法,主要解决方法有两种,外部和内部拦截.有需要的可以参考下. Android手势事件的冲突跟点击事件的分发过程息息相关,由三个重要的方法来共同完成,分别是: ...

  6. Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法

    Android学习笔记-recreate()方法导致fragment重复新建的问题,解决方法 今天修改一个比较奇怪的bug: 在操作一个事件的时候,使用eventbus来监听事件,断点发现有时候是会执 ...

  7. android 4.4 锁屏密码,安卓手机忘记锁屏密码怎么办?安卓手机绕过锁屏密码的几种解决方法...

    在2003年有一部冯小刚执导的电影叫作<手机>相信不少人都看过,那句做人要厚道的经典台词流传至今.电影讲述的是男主角手机中隐藏着的秘密被妻子发现而引发的一系列故事,从此手机又有了一个外号叫 ...

  8. 计算机截屏无法保存,win10系统截图无法保存的两种解决方法

    截图功能的重要性相信大家都知道,操作电脑经常会用到.win10系统自带有截图工具,不需要下载其他截图软件,有时候使用win10截图后竟然无法保存图片,怎么回事?这种情况可能是我们系统的组件出现问题,我 ...

  9. 电子邮件乱码产生的主要原因及几种解决方法

    关于电子邮件乱码 --转摘自中国科学院,作者不详     本文主要介绍邮件乱码产生的主要原因及几种解决方法: E-mail编码标准 由于一个汉字是用两个扩展 ASCII码表示,对DOS.Windows ...

最新文章

  1. Android自带Monkey测试
  2. 统一配置中心的设计方案
  3. RGB转换cv::Mat
  4. 手把手教你进行R语言的安装及安装过程中相关问题解决方案...
  5. 2.4 分块矩阵(第2章矩阵代数)
  6. python中私有属性无法访问的原理_python私有属性访问不到吗?
  7. vue框架优点和缺点
  8. Monitor Linux —使用zabbix服务器的跨平台固件
  9. 炒币机器人:币圈炒币是怎么亏钱的
  10. IterNet: Retinal Image Segmentation Utilizing Structural Redundancy in Vessel Networks
  11. 下一代通信的野心:超奈奎斯特!超香农?
  12. BSP 工程管理实验
  13. 有关网络安全方面的书籍(凯文·米特尼克作品)
  14. java 字节流 区别_java字节流字符流区别-嗨客网
  15. 微信付费进群收费进群系统源码 底部会显示价格(可自定义)入群
  16. NoSQL之redis配置与优化(启示录)
  17. cartographer:论文阅读(Real-Time Loop Closure in 2D LIDAR SLAM)
  18. 赴美参加学术会议办理签证流程
  19. 影响力营销合作伙伴 Influential 与 The Sandbox 达成合作,为品牌在平台上创造体验
  20. 联想计算机主机后机箱,通用方法:联想机箱更换主板方法[图形教程]

热门文章

  1. Lintcode: Unique Paths
  2. SQL CE 3.0 与SQL CE 3.5区别
  3. SQL Server2008存储结构之聚集索引
  4. 笔试题:计算N的阶乘
  5. 天气预报中的风向到底有啥用?
  6. Hbase的shell出现wrong number of arguments xxx以及undefined method any?for xxxx
  7. java.library.path到底指什么
  8. mysql练习用的数据集下载(转载+自己补充步骤)
  9. OpenCV学习笔记三-Mat数据结构
  10. Oracle中case when用法