安卓设备上touchend事件的bug
在一个元素上同时绑定了touchend,touchstart,和touchmove事件,
通过设置参数move的值来判断touchend时触发某个事件,touchemove时不触发,
但是在ios设备上表现良好,安卓设备上就不会触发touchend,或经常语言连续点击才会触发,
查了资料在touchstart事件中,阻止冒泡,touchstart正常触发,但是会禁用浏览器的scroll事件,不能滑动了,
有什么好的解决方案么?
var move = false; //判断是否滑动
$(document).delegate(".card_list li", "touchend", function (event) {
if(!move)
{
//执行其他方法
}
return false;
});
$(document).delegate(".card_list li","touchmove",function(){
move = true;
})
$(document).delegate(".card_list li","touchstart",function(){
move = false;
event.preventDefault();
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一个 Android 内置浏览器的 bug,存在于 Android 4.0 和 4.4 版本里,已经被很多人反馈过了。
你可以试试
mobiletouch
这个库,它在触屏事件上层做了封装,你可以用swipeStart
,swipeProgress
和swipe
来替代touchstart
,touchmove
和touchend
.https://github.com/chemzqm/iscroll
Android 2.x + ios 6.x 表现良好