web前端better-scroll、mui以及Isroll等出现点击事件触发两次甚至多次问题,事件累加问题,jQuery插件冲突问题 2019-08-02

方法不用太多,够用简单就好。
废话不多说,直接进入正题。

症状:页面莫名点击事件触发两次,甚至多次的,经过排查确认既不是默认事件,也不是事件冒泡的

原因:使用了better-scroll、mui以及Isroll等等插件的,使用了jQuery绑定事件的,并且使用了仿app下拉刷新,上拉刷新功能。在其刷新时事件会累加绑定。

image.png

image.png

尽量不要尝试以下方法
1:通过次数判断解决(额…… 这想法不太好)
2:改源码(放弃吧,比较费时间)
3:reload()(不好)

分析原因:在刷新时,点击事件会再绑定一次,而之前的点击事件有没有去掉,因此点击事件就会累加起来。

解决方法:只要去掉前面的事件绑定即可。使用jQuery解绑语法,然后在加上绑定即可,意为删除之前所有具有这个名的绑定方法,再重新加上同一个名的绑定方法,这样每次点击都会清除之前所有的绑定方法,而只剩下一个绑定方法,是的绑定事件不会累加。

解绑语法
用法一:

jQueryObject.off( [ events [, selector ] [, handler ] ] )

用法二:

jQueryObject.off( eventsMap [, selector ] )

示例
$(".remark-send").off("tap").on("tap",function(e){})

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (续jQuery基础(1)) 第5章 DOM节点的复制与替换 (1)DOM拷贝clone() 克隆节点是DOM的常...
    凛0_0阅读 1,370评论 0 8
  • 第1章 鼠标事件 1-1 jQuery鼠标事件之click与dbclick事件 用交互操作中,最简单直接的操作就是...
    mo默22阅读 1,308评论 0 6
  • 本篇博客源地址 总结: 鼠标事件 1.click与dbclick事件ele.click()ele.click(ha...
    ZombieBrandg阅读 684评论 0 1
  • 总结: 鼠标事件 1.click与dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r阅读 1,641评论 2 10
  • 亲子日记第159天 今天星期三福宁最近感冒了,发烧烧成肺炎了,昨天本想中午去打针能打完,晚上写作业,可是打着...
    福宁妈妈阅读 116评论 0 0