如何处理Vue中同时存在touch和click事件的兼容性问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计727个文字,预计阅读时间需要3分钟。
在Vue手机端项目中,我们常遇到touch和click事件共存的情况,如城市选择页面的文字滑动+touch事件在手机端会触发浏览器滑动。因此,应给touch事件添加阻止默认行为的代码:touchmove.prevent。
在vue开发手机端项目时,我们经常会遇到touch和click共存的情况,比如城市选择页面的字母滑动
touch事件在手机端会触发浏览器滑动,所以应给touch事件添加阻止默认行为touchmove.prevent。注意阻止默认行为事件不要添加在touchstart事件上,会影响到click事件的发生。
touch事件和click事件发生先后顺序:
touchstart,touchmove,touchend,click
补充知识:touchstart与click同时触发
产生冲突的原因
我们可以给某个元素同时绑定 touchstart 和 click 事件,但这将会导致本篇文章解决的问题 – 这两个事件在移动设备上会发生冲突。
由于移动设备能够同时识别 touchstart 和 click 事件,因此当用户点击目标元素时,绑定在目标元素上的 touchstart 事件与 click 事件(约300ms后)会依次被触发,也就是说,我们所绑定的回调函数会被执行两次!。这显然不是我们想要的结果。
本文共计727个文字,预计阅读时间需要3分钟。
在Vue手机端项目中,我们常遇到touch和click事件共存的情况,如城市选择页面的文字滑动+touch事件在手机端会触发浏览器滑动。因此,应给touch事件添加阻止默认行为的代码:touchmove.prevent。
在vue开发手机端项目时,我们经常会遇到touch和click共存的情况,比如城市选择页面的字母滑动
touch事件在手机端会触发浏览器滑动,所以应给touch事件添加阻止默认行为touchmove.prevent。注意阻止默认行为事件不要添加在touchstart事件上,会影响到click事件的发生。
touch事件和click事件发生先后顺序:
touchstart,touchmove,touchend,click
补充知识:touchstart与click同时触发
产生冲突的原因
我们可以给某个元素同时绑定 touchstart 和 click 事件,但这将会导致本篇文章解决的问题 – 这两个事件在移动设备上会发生冲突。
由于移动设备能够同时识别 touchstart 和 click 事件,因此当用户点击目标元素时,绑定在目标元素上的 touchstart 事件与 click 事件(约300ms后)会依次被触发,也就是说,我们所绑定的回调函数会被执行两次!。这显然不是我们想要的结果。

