在android 4.x上touchmove后Touchend没有触发?

我正在用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 / safair和android 2.xx上运行良好。 在android 4.x上(我试过4.0.4和4.1),touchend在touchmove之后没有触发。 如果我点击屏幕,不要移动我的手指,touchend将被解雇。

如何解决这个问题?

这是Chrome的错误,详细信息请访问: http : //code.google.com/p/chromium/issues/detail?id = 152913

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