Javascript和iPad touch event.identifier不断增加

我正在用鼠标和触摸支持构建一个简单的网页游戏。 根据JavaScript映射触摸事件到鼠标事件的接受答案,我复制粘贴了他们的代码(进行了一些修改)。

我将用户进行的第一次触摸映射到左键单击事件,并将他们制作的第二次触摸(按住第一次触摸)映射到右键单击事件。 像这样:

function touchHandler(event){
var touches = event.changedTouches;
var first   = touches[0];
var type    = "";

switch(event.type){
    case "touchstart" : type = "mousedown"; break;
    case "touchmove"  : type = "mousemove"; break;
    case "touchend"   : type = "mouseup";   break;
    default:return;
}
var button = 0;
if(first.identifier >= 1)
    button = 2;
document.getElementById("foo").innerHTML = first.identifier; //my "debug statement"
var simulatedEvent = document.createEvent("MouseEvent");
simulatedEvent.initMouseEvent(type,true,true,window,1,
                              first.screenX,first.screenY,
                              first.clientX,first.clientY,false,
                              false,false,false,button,null);
first.target.dispatchEvent(simulatedEvent);
event.preventDefault(); }

问题在于:我的“调试语句”(请参阅​​代码)显示,在chrome的模拟器模式以及我的android手机和MS Surface中,标识符是正确的。 但在我的iPad上? 1862464270,并计数。 显然,我没有那么多手指。

此问题发生在Chrome或Safari上,但仅在我的iPad上运行。 在我用于测试的其他系统上,一切正常。

有没有人有什么可能会导致这个问题的想法? 有没有其他人遇到奇怪的event.identifier行为?

链接地址: http://www.djcxy.com/p/17127.html

上一篇: Javascript & iPad touch event.identifier is continually incrementing

下一篇: Scroll overflowed content on iPad with VoiceOver enabled