本文介绍: 我的思路是,触发touchstart方法的时候延迟200毫秒如果是就是触摸事件,否则在touchend里面判断就是点击十点,调用点击事件的方法即可。当你的需要即要求可以完成触摸事件,又要求有点击事件的时候,我们要搞清楚一个问题,事件触发的排序问题。
当你的需要即要求可以完成触摸事件,又要求有点击事件的时候,我们要搞清楚一个问题,事件触发的排序问题。
1,touchstart>touchmove>touchend>click
2, touchstart>touchend>click
首先要解决的问题是触摸事件的时候点击事件不要出现(百度一大堆解决方案),看的顺眼那个就用那个,本初我使用的是event.preventDefault()
<div
@touchmove.prevent="touchmove"
@touchend.prevent="touchend"
@touchstart.prevent="touchstart"
@click="sample" id="child"
class="draggable-item" ></div>
我的思路是,触发touchstart方法的时候延迟200毫秒如果是就是触摸事件,否则在touchend里面判断就是点击十点,调用点击事件的方法即可
touchend(){
let self = this;
clearTimeout(self.Loop);
if (self.Loop !== 0) {
alert('点击事件')
this.sample()
}
return false;
},
touchstart(event){
let child = document.getElementById('child')
this.startX = event.targetTouches[0].pageX - child.offsetLeft;
this.startY = event.targetTouches[0].pageY - child.offsetTop;
let self = this;
//执行长按的内容
self.Loop = setTimeout(function () {
self.Loop = 0;
}, 200);
return false;
},
touchmove(){
},
sample(){
console.log('点击事件')
}
原文地址:https://blog.csdn.net/maoyuanh/article/details/129043600
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_32842.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。