PC端和移动端点击事件的区别:
1、PC端的点击事件为:click;
2、移动端的点击事件为 touchstart --> touchmove -> touchend -->click。
在移动端下也可以用click那么我们为什么要做兼容呢?
验证touchstart和click事件哪个先触发
html代码为:
<style>
.content{
height:500px;
background:#F00;
}
</style>
<div class="content"></div>
javascript代码为:
var content = document.querySelector(".content");
content.addEventListener("touchend", function(){
content.style.background = "#0F0";
});
content.addEventListener("click", function(){
content.style.background = "#00F";
});
通过验证我们可以得出结论:
先执行的touchend事件,之后才执行的click事件,也可以看得出冒泡事件的发生过程,由此可见,click在移动端下有延迟,所以在移动端下的点击事件最好不要用click,下面我们来做移动端的点击事件兼容处理
那么我们应该如何做到点击事件的兼容呢?
我们可以通过点击事件的类型来判断,如果是PC端那么我们不用管他,因为PC端没有touch事件,如果在移动端,那我们就判断点击的类型是否为touchend或touchstart,如果存在就说明是移动端的点击事件,那么我们才能解绑click事件在阻止冒泡事件:
代码如下:
function events(e){
// 判断是否存在touch事件
if(e.type == "touchend" || e.type == "touchstart"){
$(e.target).unbind("click");//解绑click事件
e.preventDefault();//阻止默认事件
}
}
点我咨询
一、用户注册、登陆,视为接受本协议的约束。
二、用户承诺遵守国家的法律法规及部门规章
三、用户承诺遵守“313组件库”的知识产权政策.
四、站内插件用于行业交流、学习。
五、用户侵犯第三人的知识产权,由该用户承担全部法律责任。
313组件库(www.yu313.cn)站内所有涉及插件及代码由会员或站主上传而来,313组件库不拥有会员上传的插件及代码的版权
313组件库作为网络服务提供者,对非法转载,盗版行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,313组件库负有移除盗版和非法转载作品以及停止继续传播的义务。313组件库在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。
如果版权拥有者发现自己作品被侵权,请及时向313组件库提出权利通知,并将姓名、电话、身份证明、权属证明、具体链接(URL)及详细侵权情况描述发往版权举报专用通道,313组件库在收到相关举报文件后,在3个工作日内移除相关涉嫌侵权的内容
QQ:515184405(周一到周五,9:30-18:00)