为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery中的类被移除后为什么还可以触发该类的事件?

jQuery中的类被移除后为什么还可以触发该类的事件?

红颜莎娜 2019-04-16 20:27:05
本人新手,场景是自己做的一个小练习:设置两组投票数据,每人可以投三票,超过了了就弹窗提示。验证方法是在localstorage中设置一个计数器,每次点击后计数器+1。然后我想自己另外写一个刷票的小功能:添加一个解除限制的按钮,点击这个按钮后就可以直接在原先的投票按钮上进行无限次数的点击。我的实现方式是直接把原先的按钮类替换成另一个类,然后模拟原先的按钮类操作。可以实现无限次的点击,但是每次都会先触发原先那个按钮类的localstorage验证操作。想请教下各位这是怎么回事后来想了个取巧的办法:把localstorage里的计数器改成一个很大的负数,来实现伪无限次点击。但是总感觉这种解决方式不是很优雅,所以想请教下各位有没有更好点的解决办法相关代码:按照答案里“nightire”的指点,在类替换后先用off()将之前绑定在btn类上的事件取消,然后重新给btn-s绑定事件即可。实现代码:
查看完整描述

2 回答

?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

没有动手做实验,只是看了一下你的例子做一个无责任分析啊。
我觉得原因很简单,尽管你$('.btn').addClass('btn-s').html("无限投");了一下,但是原来的.btn还在啊,于是通过$('.btn')绑定的事件回调还是会响应的。要想在添加了额外的class之后取消原来的逻辑,你应该解绑,或者在回调里判断一下有没有这个额外的class。
                            
查看完整回答
反对 回复 2019-04-16
?
隔江千里

TA贡献1906条经验 获得超10个赞

我的实现方式是直接把原先的按钮类替换成另一个类
addClass是添加一个类,添加完之后你的.btn还是存在的,所以要removeClass('.btn')
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信