前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jquery 使用 unbind 解决重复绑定执行事件

jquery 使用 unbind 解决重复绑定执行事件

作者头像
Devops海洋的渔夫
发布2019-08-02 10:21:58
1.6K0
发布2019-08-02 10:21:58
举报
文章被收录于专栏:Devops专栏

原文:jquery 使用 unbind 解决重复绑定执行事件

存在问题

在jquery监听click事件的时候会出现点击一次没有重复,点击第二次就重复的情况。出现这个问题的原因是之前的click事件被绑定后,并没有解绑。

还原问题现场

先来看看需求:点击一个数据表之后,确认自定义的模态窗口,然后删除改行的数据,并打印改行数据的ID。

从上面三张图可以看到一个执行流程,这次是正常的,只打印了一次ID。下面来再删除第二行数据。

问题:发现重复打印了前面绑定了 id = 1 的日志数据。

问题的基本原因:应该是上一行删除的数据 id 的click事件没有被解绑,当再次触发的时候,就重复执行上一次绑定的事件。

可以再删除第三个数据,看看 id = 1 和 id = 2 的事件是不是都重复了。

删除之后,打印了 3 个 id = 1, 2个 id = 2, 1个 id = 3。说明前面绑定的事件又重复之前了一遍。

这个就有点像jquery执行动画效果之前,需要使用一个stop()方法,将之前执行的动画都停止掉一样。

这种事件绑定重复的执行问题,需要一个unbind()方法,先解除绑定,再绑定执行,才能解决重复执行。不然重复进行绑定事件,那么就会重复执行事项。

查看解决代码

看看问题代码,如下:

就是箭头的位置多次进行click事件绑定导致重复执行了。

解决方法,如下:

在执行事件绑定之前,进行 unbind('click') 即可。

设置了unbind之后,日志打印没有重复执行的情况了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.07.31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 存在问题
  • 还原问题现场
  • 查看解决代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档