在android 4.x上touchmove后Touchend没有开火?

时间:2013-05-01 08:33:38

标签: javascript android javascript-events touch mobile-browser

我正在用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.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 个答案:

答案 0 :(得分:2)

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