浅谈jQuery绑定事件会叠加的解决方法和心得总结


Posted in Javascript onOctober 26, 2016

关于jQuery的学习中我忽略了一个取消绑定事件.unbind()的使用,也不知道绑定事件会累加的情况,结果因为这个原因,让我在项目上栽了坑。只能说自己还太年轻,需要学习掌握的知识还有很多。

我遇到的问题

我在项目中遇到的状况,一个评价页面,简单的来说就是左右两个表格,ajax分别动态加载学生姓名学号信息和不同科目对学生评价内容两部分,两边表格我都每行写了checkbox并对table tbody tr绑定click事件执行行选功能,起初我写的是静态页面html,行选功能完全没有问题,后来换成jsp页面,ajax动态加载数据进来后,问题就来了,由于ajax异步请求,两边表格发送请求加载数据有先后,之前静态页面测试好的行选功能就出了问题,每次刷新页面,只有后加载的部分才可以行选,之前加载的部分行选失效。自己控制台打印点击的状态console.log(chkBoxStatus);测试发现前加载的部分总是打印两次false true,而后加载的部分只打印一次false或是true。

我之前的行选代码段:

//行选功能 
  $("table tbody tr").click(function(event) {

  //遍历tr下的checkbox元素
  var $check = $(this).find("input[type=checkbox]");

  //判断非点击checkbox本身
  if($check.length > 0 && event.target != $check[0]) { 
    var chkBoxStatus = $check.is("input:checked");
    console.log(chkBoxStatus);
    $check.prop("checked", !chkBoxStatus); 
  }

  });

起初我认为我肯定是jQuery功能代码不对,于是自己检查了html里id,class,发现并没有出错,于是我便一直在想为何控制台会意外打印两次,后面室友提示我说,试试在执行功能之前清除事件绑定,于是我便照做了用jquery 的.unbind("click"),清除所有table上的click事件。结果!结果竟然成功了!!!两边的表格数据都可以正常进行行选功能,虽然是完成了预期功能,但是我当时不知道为什么要这样去做清除事件。后面我突然想到原来是执行了两次click事件的结果,每次先加载的数据,加载完毕后就被绑定click事件一次,后加载的数据加载完毕后,之前先加载的数据再次被绑定一次click事件,所以也就是为什么先加载的数据行选失效,打印两次false true , 而后加载的数据行选正常,打印一次。

下面是修改后的代码:

//行选功能 
  $("table tbody tr").unbind("click");//清除table的所有click事件  
  $("table tbody tr").click(function(event) {

  //遍历tr下的checkbox元素
  var $check = $(this).find("input[type=checkbox]");

  //判断非点击checkbox本身
  if($check.length > 0 && event.target != $check[0]) { 
    var chkBoxStatus = $check.is("input:checked");
    console.log(chkBoxStatus);
    $check.prop("checked", !chkBoxStatus); 
  }

  });

虽然问题很小,但是也是学习,总之自己还是需要不断努力,完善自己。博文只是对自己的总结

以上就是小编为大家带来的浅谈jQuery绑定事件会叠加的解决方法和心得总结全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
基于JQuery的Pager分页器实现代码
Jul 17 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
Jan 09 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
Aug 08 Javascript
jquery插件之文字间歇自动向上滚动效果代码
Feb 25 Javascript
jQuery Ajax使用FormData对象上传文件的方法
Sep 07 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
微信小程序进行微信支付的步骤昂述
Dec 01 Javascript
解决layer弹层遮罩挡住窗体的问题
Aug 17 Javascript
webpack4 SplitChunks实现代码分隔详解
May 23 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
JavaScript经典案例之简易计算器
Aug 24 Javascript
关于Jquery中的事件绑定总结
Oct 26 #Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 #Javascript
理解JavaScript原型链
Oct 25 #Javascript
Ztree新增角色和编辑角色回显问题的解决
Oct 25 #Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 #Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
Oct 25 #Javascript
JavaScript prototype属性详解
Oct 25 #Javascript
You might like
用PHP实现WEB动态网页静态
2006/10/09 PHP
用windows下编译过的eAccelerator for PHP 5.1.6实现php加速的使用方法
2007/09/30 PHP
PHP函数篇之掌握ord()与chr()函数应用
2011/12/05 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
Bootstrap实现弹性搜索框
2016/07/11 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
解决VUEX刷新的时候出现数据消失
2017/07/03 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
python cumsum函数的具体使用
2019/07/29 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
美国第二大连锁书店:Books-A-Million
2017/12/28 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
公司前台辞职报告
2014/01/19 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
安全生产责任书范本
2014/04/15 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
2014年党支部书记工作总结
2014/12/04 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2019优秀干部竞聘演讲稿范文!
2019/07/02 职场文书