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