如果绑定tap方法的dom元素在tap方法触发后会被干掉(隐藏,移走,删掉),则它底下同一位置的dom元素会触发click事件、或者有浏览器认为可以被点击有交互反应的dom元素(例如input的focus事件),这个现象称为点击穿透.
回答
小泽回答
问题分析:
click事件在移动端会有延迟
zepto的tap事件是绑定在document.body上的,tap事件执行(冒泡之后)之前,click事件已经被"执行",只是被延迟了而已,所以在tap事件用preventDefault也不可行.
解决方案:
- 底下的元素也使用tap事件,即上下两个元素使用同一种事件(tap/click)
- 不要使用tap事件,使用touchend事件处理,并preventDefault掉
- 使用fastclick库,其实现原理就是把click的300ms延迟干掉
(0)