it-swarm.com.de

Touch-API (z. B. Touchstart) funktioniert in MS Edge nicht

meine Anwendung verwendet die Touch-API zur Erkennung von Berührungsereignissen in JavaScript. Beispiel:

$(".element").on("touchstart", function(event){
    alert("TRUE");
});

Dies funktioniert auf jedem Touchgerät mit jedem Browser wie Android oder iOS, jedoch nicht in MS Edge auf einem Windows 10-Tablet mit oder ohne angeschlossener Tastatur. Die API scheint unterstützt zu werden: Kompatibilitätsliste . Ich habe jedoch Folgendes getestet: 'ontouchstart' in window und dies gibt auf diesem Gerät false zurück. Außerdem scheint mousedown gefeuert zu werden.

Was geht hier vor sich? Was kann ich tun, um Berührungsereignisse auf einem Windows 10-Tablet auszulösen? Ich möchte das Ereignis nur für Berührungsgeräte behalten. Der Wechsel zur Pointer Events-API würde auch Desktop-Geräte einschließen, was ich nicht möchte.

16
dude

für die Touch-API müssen Sie ein Flag bei Edge aktivieren: Geben Sie in die Adressleiste about: flags ein und drücken Sie die Eingabetaste. Im Abschnitt Touch können Sie Touch-Ereignisse mit der entsprechenden Dropdown-Liste aktivieren

17
t.ouvre

Haben Sie die benutzerdefinierte Handhabung von Berührungen aktiviert? Sie können dies mit dem folgenden CSS-Snippet tun (auf dem Body-Tag oder nur einem Container für Geastures):

-ms-touch-action: none;

Als nächstes ist die Touch-API eine Webkit-Funktion (möglicherweise liegt in CanIuse ein Fehler vor?). IE und Edge haben eine ähnliche Funktion, die als Pointer-API bezeichnet wird. Sie können jedoch eine Polyfill-Bibliothek wie folgt verwenden: https://github.com/CamHenlin/TouchPolyfill

5
t.ouvre

Versuchen Sie es mit dem Ereignis pointerdown. Einige (viel) mehr Informationen . Wie Sie sehen, wird touchstart von Edge ausgelöst, jedoch nicht in allen Konfigurationen. Wenn beispielsweise eine Tastatur angeschlossen/gekoppelt wird, gibt es keine touchstart.

0
Shanoor