移动端点击穿透
我们在移动端点击事件click对比touchend会有很明显的300ms的延迟,为啥?
浏览器在 click 后会等待约300ms去判断用户是否有双击行为(手机需要知道你是不是想双击放大网页内容)。
如果300ms内没有再一次click,那么就判定这是一次单机行为。所以我们基本上都用(touchstart/touchend)。
但是这些事件在执行完之后还会执行一次click事件;
解决方法:利用pointer-events :
pointer-events 相关特性:
- 阻止用户的点击动作产生任何效果
- 阻止缺省鼠标指针的显示
- 阻止CSS里的hover和active状态的变化触发事件
- 阻止JavaScript点击动作触发的事件
$('select').css('pointer-events','none');
//因为click事件需要300ms响应,所以我们时间定义350ms,时间一过又可以正常点击了
setTimeout(function(){$('select').css('pointer-events','all')},350)

浙公网安备 33010602011771号