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

如何解决这个问题?

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

4

1 回答 1

2

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

于 2013-10-03T15:26:10.610 回答