Javascript 触摸API(如touchstart)在MS Edge中不工作

Javascript 触摸API(如touchstart)在MS Edge中不工作,javascript,mobile,touch,tablet,microsoft-edge,Javascript,Mobile,Touch,Tablet,Microsoft Edge,我的应用程序正在使用TouchAPI检测JavaScript中的触摸事件。例如: $(".element").on("touchstart", function(event){ alert("TRUE"); }); 这适用于任何带有任何浏览器(如Android或iOS)的触摸设备,但在带有或不带有连接键盘的Windows 10平板电脑上,它不适用于MS Edge。API似乎受支持:。然而,我已经测试过:“ontouchstart”在窗口中,在这个设备上返回false。此外,moused

我的应用程序正在使用TouchAPI检测JavaScript中的触摸事件。例如:

$(".element").on("touchstart", function(event){
    alert("TRUE");
});
这适用于任何带有任何浏览器(如Android或iOS)的触摸设备,但在带有或不带有连接键盘的Windows 10平板电脑上,它不适用于MS Edge。API似乎受支持:。然而,我已经测试过:
“ontouchstart”在窗口中,在这个设备上返回false。此外,
mousedown
似乎被解雇了

这是怎么回事?如何在Windows 10平板电脑上触发触摸事件?
我只想保留触摸设备的活动。切换到指针事件API还将包括桌面设备,这不是我想要的。

尝试使用
pointerdown
事件。还有一些(更多)。如您所见,
touchstart
由Edge触发,但并非在所有配置中,例如,当连接/配对键盘时,没有
touchstart

您是否启用了自定义触摸处理?您可以使用以下css片段(位于body标记上或仅用于geastures的容器上)完成此操作:

接下来,TouchAPI是一个webkit功能(可能在CanIuse中有错误?)。IE和Edge有一个类似的特性,称为指针API。但您可以使用如下方式的polyfill库:

对于touch API,您必须激活Edge上的标志:在地址栏中,输入about:flags并按enter键。在触摸部分,您可以使用相应的下拉菜单启用触摸事件

Yes,但是如果我没有连接键盘,则触摸启动事件甚至不会被触发。另外,我想让这个活动只针对触摸设备,而不是桌面设备(指针API会是什么情况)。它是蓝牙键盘吗?有一对似乎足以不触发事件,这是相当愚蠢的。我有一个华硕平板电脑附带一个扩展底座。扩展底座包括一个键盘。因此,如果我将它与停靠站断开连接,我希望它是一个“本机”触摸屏,应该能够被检测到。指针事件也不起作用。因此,Edge在触摸设备上根本无法提供任何功能。所有的广告都错了。嗨,你在这个问题上取得进展了吗?没有,事实上我还在等待解决方案,没有找到任何解决办法。如果没有人回复解决方案,我认为唯一的选择是同时监听鼠标事件。您将使用此CSS禁用触摸操作。如前所述,支持触摸事件,请参阅。我不想支持鼠标事件,这就是指针API的事实。我也描述过这件事。@julmot,这是错的。要启用自定义手势处理,需要将ms touch action设置为none。否则,浏览器将使用默认行为(用于滚动处理、平移、收缩和缩放)。如果您想要构建自定义手势(并使用指针API),则必须将ms touch action设置为none。对于Edge的最新版本,必须将“-ms touch action”替换为“touch action”。请相信我,尝试在页面主体上使用PointerMove事件,并将触摸操作设置为none和nothing。您将看到我的意思。@julmot,对于TouchAPI,您必须在Edge上激活一个标志:在url输入中,输入about:flags。在触摸部分,您可以通过相应的下拉菜单启用触摸事件。感谢您的提示!我将在新的一年里检查这个。事实上,这个属性是禁用的。我不知道它被禁用的原因,但激活它后,触摸事件被正确触发。可能是Windows 10升级问题…仅供参考-我需要这样做并添加样式标签:
-ms touch action:none
提到了你的另一个答案这个解决方案对WWW有帮助吗?大多数用户不会启用此标志,也不会关心/知道启用它。@默认情况下未启用的trismi功能不存在。没有用户将配置其浏览器的隐藏功能。他们只是说这不管用。然后我不得不说,买一个真正的浏览器。Edge是新的IE吗?!有希望。
-ms-touch-action: none;