ontouchmove只触发一次并为第一个元素(不触发其他元素的ontouchmove事件)

时间:2014-11-20 14:02:26

标签: javascript android events triggers touchmove

我正在使用Android来调整我的旧JavaScript游戏之一,我想知道为什么“touchmove”只会触发我用手指按下的第一个元素。按下该元素后,我移动手指(不释放它),当我进入另一个元素时,新元素不会触发其“touchmove”事件。

我做了这个简单的例子来测试(它不是我使用它的实际代码,但它仍然具有相同的行为):

<html>
    <head>
    </head>
    <body>
        <div style="background-color:red; height:33%;" ontouchmove="this.style.background='black';">Box 1</div>
        <div style="background-color:blue; height:33%;" ontouchmove="this.style.background='black';">Box 2</div>
        <div style="background-color:orange; height:33%;" ontouchmove="this.style.background='black';">Box 3</div>
    </body>
</html>

我在Android的默认浏览器(三星Galaxy S3)上尝试了该代码。我开始用手指按下“Box 1”(因为事件被执行它变成黑色)然后,在没有释放手指的情况下,我继续通过“Box 2”和“Box 3”移动它,但它们从未变黑,因为他们的活动永远不会被触发。

我期望的是与桌面浏览器上的“mousemove”事件类似的行为。您可以在启用了JavaScript的任何桌面浏览器上测试以下代码:

<html>
    <head>
    </head>
    <body>
        <div style="background-color:red; height:33%;" onmousemove="this.style.background='black';">Box 1</div>
        <div style="background-color:blue; height:33%;" onmousemove="this.style.background='black';">Box 2</div>
        <div style="background-color:orange; height:33%;" onmousemove="this.style.background='black';">Box 3</div>
    </body>
</html>

当您将鼠标移到元素上时,全部变为黑色。当我使用ontouchmove时,它不会发生什么?

顺便说一下,我知道需要使用“preventDefault()”的Android bug。我试图在我的实际游戏代码上使用事件的preventDefault方法,但它仍然是一样的。

提前谢谢。

干杯,  琼

0 个答案:

没有答案