jQuery事件多次绑定与解绑问题实例分析


Posted in jQuery onFebruary 19, 2019

本文实例分析了jQuery事件多次绑定与解绑问题。分享给大家供大家参考,具体如下:

jQuery事件绑定很常见,相信大家经常会用到clickfocusblur等事件,但是如果对控件的某个事件绑定多个方法会是怎样的结果呢,覆盖、累加、或其他效果?今天我就来验证一下这个疑问并说说如何解绑。

一、jQuery事件多次绑定

<head>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(document).ready(function () {
      //第二次绑定
      $("#btnAdd").click(function () {
        alert("bind click1");
      });
      //第三次绑定
      $("#btnAdd").on("click", function () {
        alert("bind click2");
      });
      //第四次绑定
      $("#btnAdd").bind("click", function () {
        alert("bind click3");
      });
    });
    function add1() {
      alert("add1()");
    }
  </script>
</head>
<body>
  <h2>UserController->Index</h2>
  <!--第一次绑定-->
  <input type="button" id="btnAdd" name="btnAdd" value="Add" onclick="add1()" />
</body>

验证结果:对控件的某个事件进行多次绑定效果会叠加,截图如下:

jQuery事件多次绑定与解绑问题实例分析

二、jQuery事件解绑

既然能绑定事件,那应该也能对事件解绑,下面展示解绑的方法:

<head>
  <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
  <script type="text/javascript">
    $(document).ready(function () {
      $("#btnAdd").click(function () {
        alert("bind click1");
      });
      $("#btnAdd").on("click", add2);
      $("#btnAdd").bind("click", add3);
    });
    function add1() {
      alert("add1()");
    }
    function add2() {
      alert("bind click2");
    }
    function add3() {
      alert("bind click3");
    }
    function cancelBind() {
      //不指定方法名则解绑click事件对应的所有方法,标签内onclick设置的方法仍会执行
      //$("#btnAdd").off("click");
      //$("#btnAdd").unbind("click");
      //解绑click事件对应的add2方法
      $("#btnAdd").off("click", add2);
      //$("#btnAdd").unbind("click", add3);
    }
  </script>
</head>
<body>
  <h2>UserController->CancelBind</h2>
  <input type="button" id="btnAdd" name="btnAdd" value="Add" onclick="add1()" />
  <input type="button" id="btnCancelBind" name="btnCancelBind" value="CancelBind" onclick="cancelBind()" />
</body>

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
Jul 05 jQuery
jQuery选择器特殊字符与属性空格问题
Aug 14 jQuery
jquery tmpl模板(实例讲解)
Sep 02 jQuery
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
jquery手机触屏滑动拼音字母城市选择器的实例代码
Dec 11 jQuery
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 jQuery
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 jQuery
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
Feb 14 jQuery
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
Sep 10 jQuery
jQuery 选择器用法基础入门示例
Jan 04 jQuery
jQuery AJAX应用实例总结
May 19 jQuery
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
JS/jQuery实现简单的开关灯效果【案例】
Feb 19 #jQuery
jQuery AJAX与jQuery事件的分析讲解
Feb 18 #jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 #jQuery
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 #jQuery
jQuery实现的五星点评功能【案例】
Feb 18 #jQuery
jQuery实现的隔行变色功能【案例】
Feb 18 #jQuery
jQuery实现ajax的嵌套请求案例分析
Feb 16 #jQuery
You might like
php文件操作相关类实例
2015/06/18 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
2019/05/09 PHP
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
js中cookie的添加、取值、删除示例代码
2013/10/21 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
JS判断是否长按某一键的方法
2016/03/02 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
详解Python编程中包的概念与管理
2015/10/16 Python
python去掉行尾的换行符方法
2017/01/04 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python如何通过Flask-Mail发送电子邮件
2020/01/29 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
CSS3 真的会替代 SCSS 吗
2021/03/09 HTML / CSS
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
英国领先的酒类网上商城:TheDrinkShop
2017/03/16 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
计算机网络专业个人的自我评价
2013/10/17 职场文书
毕业生就业自荐书
2013/12/15 职场文书
学生周末长期请假条
2014/02/15 职场文书
商场促销活动策划方案
2014/08/18 职场文书
2015新学期家长寄语
2015/02/26 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android