Javascript IE10 MSPointerUp在不松开手指的情况下点火(触摸保持)

Javascript IE10 MSPointerUp在不松开手指的情况下点火(触摸保持),javascript,internet-explorer,touch,dom-events,internet-explorer-10,Javascript,Internet Explorer,Touch,Dom Events,Internet Explorer 10,我一直在摆弄IE10touch API(在三星平板电脑上测试),我发现在按住一个触摸键后,触摸释放动作会被触发 下面是当我将手指放在屏幕上时触发的事件过程: 0ms=MSPointerDown,pointerId=0 1ms=MSPointerMove,pointerId=0 ~1000ms=MSPointerUp,指针ID=0 ~1001ms=MSPointerDown,pointerId=1重复点 ~1002ms=MSPointerMove,pointerId=1 ~1250ms=MSPo

我一直在摆弄IE10touch API(在三星平板电脑上测试),我发现在按住一个触摸键后,触摸释放动作会被触发

下面是当我将手指放在屏幕上时触发的事件过程:

  • 0ms=MSPointerDown,pointerId=0
  • 1ms=MSPointerMove,pointerId=0
  • ~1000ms=MSPointerUp,指针ID=0
  • ~1001ms=MSPointerDown,pointerId=1重复点
  • ~1002ms=MSPointerMove,pointerId=1
  • ~1250ms=MSPointerUp,指针ID=1
然后在重复点以递增的指针ID重复

代码如下:

// Setup the css on the canvas (allows for detection of MSPointerMove)
$(canvas).css("-ms-touch-action", "none");

// Initialize regular touch actions
canvas.addEventListener('MSPointerDown', TouchStart, false);
canvas.addEventListener('MSPointerMove', TouchMove, false);
canvas.addEventListener('MSPointerUp', TouchEnd, false);

// Initialize the revoking of gestures/other unwanted pieces
canvas.addEventListener("MSPointerCancel", function (e) { e.preventDefault(); }, false);
canvas.addEventListener("MSGestureInit", function (e) { if (e.preventManipulation) e.preventManipulation(); }, false);
canvas.addEventListener("MSHoldVisual", function (e) { e.preventDefault(); }, false);

这绝对可能只是一个板岩问题,但我认为明智的做法是要求确保我没有遗漏任何东西。如果这不仅仅是一个板岩问题,那么我如何允许用户在不触发不必要的“MSPointerUp”事件的情况下,在一秒钟左右的时间内按住手指。

事实证明,这个问题是没有更新驱动程序的W7/W8三星平板电脑的常见问题

通过在以下位置更新驱动程序使其正常工作:

我也在三星平板电脑上看到过这种行为,在两种不同类型的硬件上,我没有找到任何解决办法。另外值得注意的是,我试过的一款非三星Windows 8平板电脑并没有不断触发指针事件——因此,目前我把这归咎于三星的驱动程序问题,而不是一般的Win 8问题。