手机浏览器打开页面,页面所有的tap事件都不可用?
某些手机的自带浏览器打开页面,tap事件都没有起作用。页面引入的是zepto.js,我试过了引入event.js,touch.js也不起作用,把tap事件换成click事件还有touchstart事件也没有作用。之前控制台有这样的警告:Unable to preventDefault inside passive event listener due to target being treated as passive。
我试过网上别人的方法:
在js中添加这一段,貌似也没有效果。
document.addEventListener('touchstart', function(event) {
// 判断默认行为是否可以被禁用
if (event.cancelable) {
// 判断默认行为是否已经被禁用
if (!event.defaultPrevented) {
event.preventDefault();
}
}
}, false);
PS:QQ浏览器打开页面没有问题,但是还几款安卓自带浏览器打开页面之后所有事件都失效。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
引入fastclick试试
在手机上打开"
开发者模式
",通过USB debugger
一下。看看报什么错。
我的经验,你先试试
IE9 10
.如果这两个浏览器,正常运行了。手机就应该没问题了。还是建议你usb debugger
吧。这个是IE9,10,11分别测试的结果,无论是点击还是滚动鼠标都会不停得报错。请问这个是什么原因导致的?手机内置的浏览器和IE是一个内核吗?谢谢~
当在事件回调函数中使用 event.preventDefault() 的时候某些函数会出现你说的那个提示,这个不影响事件运行,只是不能阻止默认行为。
click 事件在移动端的触发条件是 touchstart 和 touchend 正常触发,使用 preventDefault 拦截其中一个以后 click 事件不会触发。有拦截需求可以放在 touchmove 中。
至于你说的 touchstart 没有触发不太清楚。
你用的js库是不是会阻止默认点击事件