在安卓4.x系统上,触摸移动后touchend事件无法被触发?

7
我正在使用JavaScript编写一些代码,就像这样:

...

    var el = document.getElementById('some-div');
    el.ontouchstart = function(e){
            el.innerHTML = "touch start";
    };
    el.ontouchend = function(e){
            el.innerHTML = "touch end";
    };
    el.ontouchmove = function(e){
            el.innerHTML = "touch moved";
    };

这段代码在iOS/Safari和Android 2.x.x上运行良好。但在Android 4.x上(我尝试过4.0.4和4.1),touchend在touchmove后无法触发。如果我轻点屏幕,不移动手指,touchend将被触发。

如何修复这个问题?

这是Chrome的一个错误,详细信息在这里:http://code.google.com/p/chromium/issues/detail?id=152913

1个回答

2

我相信如果你在touchstart或touchmove中调用e.preventDefault(),它将阻止事件在到达ontouchend处理程序之前被吸收。不过我现在手头没有设备来尝试 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接