zepto点透事件
程序员文章站
2022-05-05 08:54:45
...
原因: zepto的tap通过兼听绑定在document上的touch事件来完成tap事件的模拟的,及tap事件是冒泡到document上触发的由于click 在移动端会发生300毫秒延迟。当tap点击后还没冒泡到document上时,在手指的点击下会发生click事件!
解决:
方法1:使用github 上的fastclick插件
引入 fastclick.js
window.addEventListener('load',function(){
FastClick.attach(document.body)
},false)
或者在 zeptojs 中直接写
$(function(){
FastClick.attach(document.body)
});
使用require的话这样写
var FastClick = require('fastclick');
FastClick.attach(document.body,options);
方法2:使用touchend 代替tap并阻止默认事件preventDefault( );
方法3:使用延迟300ms 来处理事件;
$("#cd").on('tap',function(event){
setTimeout(function(){
//这里面写处理的js
},320)
})
方法4:使用css3 的给下层设置pointer-events=true;pointer-events=none;来实现
下一篇: 异常处理中throw与throws