js点击事件多次触发问题
来源:互联网 发布:javascript bind this 编辑:程序博客网 时间:2024/06/05 16:22
今天遇到了又一个神奇的问题,起因是做一个开启禁用功能的按钮,先给按钮定义事件。
$('.pro_on').click(project.proTurnOff);$('.pro_off').click(project.proTurnOn);
在这开启事件函数中这样写,禁用事件同理。
//开启按钮事件Project.prototype.proTurnOn = function(){ pro_id = $(this).attr('id'); var This = $(this); $.ajax({ url:'/project_user/'+pro_id+'/edit', type:'get', data:{ disable:0 }, beforeSend:function(){ $('.loading').show(); }, success:function(data){ if(data.status==200){ This.html('禁用'); This.removeClass('pro_off').addClass('pro_on'); alert('修改为开启'); $('.pro_on').click(project.proTurnOff); $('.pro_off').click(project.proTurnOn); } } })};
这里需要注意,修改class之后,前面定义的事件失效了,需要重新定义才生效。但是这个时候,神奇的事情发生了,点击前几次的时候,开启禁用功能都正常,但是当从第四次点击开始,每点击一次,就相当于点击了n+1次,时间触发的次数越来越多,后经大师(兄弟会--王飞龙)指点,需要在重新定义点击时间之前,先取消之前的事件绑定。因此,修改如下
$('.pro_on').click(project.proTurnOff); $('.pro_off').click(project.proTurnOn);
修改为:
$('.pro_on').off("click").click(project.proTurnOff);$('.pro_off').off("click").click(project.proTurnOn);
像往常一下,不知道为什么,但是,解决了。
0 0
- js点击事件多次触发问题
- js触发点击事件
- js触发按钮点击事件
- js触发按钮点击事件
- JS触发点击按钮事件
- js触发按钮点击事件
- js触发按钮点击事件
- jQuery给一个元素绑定事件前,一次点击会多次触发的问题所在
- js函数节流 函数去抖来解决多次触发事件的问题
- js事件多次绑定问题
- 避免点击触发多个按钮和快速点击多次触发事件
- mouseover多次触发事件
- jquery 绑定点击事件 多次执行问题
- JS触发a节点的点击事件
- js任意鼠标点击触发事件
- JavaScript js阻止连续点击事件触发
- JS的事件多次触发,只执行最后一次
- 关于事件触发多次产生的BUG问题
- 高维数据处理
- JVM调优-新一代的垃圾回收算法
- 汇编中各寄存器的作用
- MyBatis错误:元素类型为 "configuration" 的内容必须匹配
- Nginx的一些基本功能极速入门
- js点击事件多次触发问题
- 通过Shell数组传参控制Sql脚本串并行调度一例
- 微服务访问安全设计方案全探索
- Hibernate one-to-one一对一映射
- ECshop增加paypal_EC流程
- C# 修饰符
- iterm 分屏切换快捷键
- linux下的连接管理工具xshell的使用
- JVM进阶(十)——JAVA 年老代收集器