简体   繁体   English

IE10 MSPointerUp 在不松开手指的情况下触发(在 Touch Hold 上)

[英]IE10 MSPointerUp fires without releasing finger (on Touch Hold)

I've been messing around with the IE10 touch API (testing on a Samsung Slate) and I've found that after holding down a touch that the touch release action gets fired.我一直在使用 IE10 触摸 API(在三星 Slate 上测试),我发现在按住触摸后触摸释放动作被触发。

So here's the process of events that get fired when I hold my finger down on the screen:所以这是当我将手指放在屏幕上时触发的事件过程:

  • 0ms = MSPointerDown with pointerId = 0 0ms = MSPointerDown,pointerId = 0
  • 1ms = MSPointerMove with pointerId = 0 1ms = MSPointerMove,pointerId = 0
  • ~1000ms = MSPointerUp with pointerId = 0 ~1000ms = MSPointerUp with pointerId = 0
  • ~1001ms = MSPointerDown with pointerId = 1 REPEAT POINT ~1001ms = MSPointerDown,pointerId = 1 重复点
  • ~1002ms = MSPointerMove with pointerId = 1 ~1002ms = MSPointerMove,pointerId = 1
  • ~1250ms = MSPointerUp with pointerId = 1 ~1250ms = MSPointerUp with pointerId = 1

Then repeats at REPEAT POINT with incrementing pointerId's.然后在重复点重复递增pointerId。

Here's the code:这是代码:

// 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);

This could absolutely just be a Slate issue but I thought it'd be wise to ask to make sure i'm not missing anything.这绝对可能只是一个 Slate 问题,但我认为询问以确保我没有遗漏任何东西是明智的。 If this is not just a Slate issue then how do I allow for the user to hold down their finger without triggering an unneeded "MSPointerUp" event after a second or so.如果这不仅仅是 Slate 问题,那么我如何允许用户按住手指而不会在一秒左右后触发不需要的“MSPointerUp”事件。

It turns out that this issue is a common issue with W7/W8 Samsung tablets that have not had their drivers updated.事实证明,此问题是未更新驱动程序的 W7/W8 三星平板电脑的常见问题。

Was able to get it to work by updating drivers at: http://www.samsung.com/ca/support/win8upgrade/能够通过更新驱动程序使其工作: http : //www.samsung.com/ca/support/win8upgrade/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM