Ho un problema molto specifico. Sto scrivendo una pagina web per telefoni cellulari con un pulsante. Sto rilevando touchevent
su ogni browser incluso IE, ma su IE è abbastanza specifico. Dopo pochi secondi termina automaticamente. Puoi in qualche modo aiutarmi? Qui è il mio codice (modificato uno, ma ancora non funziona correttamente):L'evento Touchstart IE di Windows Phone termina automaticamente dopo pochi secondi
if (window.navigator.pointerEnabled) {
tapButton.addEventListener("pointerup", function(e) {
e.preventDefault();
addClass(this, 'clicked');
buttonTouched = true;
}, false);
tapButton.addEventListener("pointerdown", function(e) {
e.preventDefault();
removeClass(this, 'clicked');
buttonTouched = false;
}, false);
alert("pointerEnabled");
}
else if (window.navigator.msPointerEnabled) {
tapButton.addEventListener("MSPointerDown", function(e) {
e.preventDefault();
addClass(this, 'clicked');
buttonTouched = true;
}, false);
tapButton.addEventListener("MSPointerUp", function(e) {
e.preventDefault();
removeClass(this, 'clicked');
buttonTouched = false;
}, false);
alert("mspointerEnabled");
}
else {
alert("ordinary touch");
tapButton.addEventListener('touchstart', function(e) {
e.preventDefault();
addClass(this, 'clicked');
buttonTouched = true;
}, false);
tapButton.addEventListener('touchend', function(e) {
e.preventDefault();
removeClass(this, 'clicked');
buttonTouched = false;
}, false);
}
E il tag HTML ha in sé:
-ms-touch-action: none !important;
touch-action: none !important;
ma questo non aiuta.
Non hai detto quale versione di IE vedi questo, ma vedo che stai rilevando gli eventi con prefisso del venditore prima degli eventi senza prefisso. Per https://msdn.microsoft.com/en-us/library/windows/apps/dn263112.aspx#document_object_model__dom__improvements, le versioni con prefisso sono deprecate e dovrebbero essere utilizzate solo quando le versioni non prefissate non sono disponibili. Forse riordinare le cose ti aiuterà. Le versioni con prefisso, a un certo punto, non funzioneranno più. –
Stavo cercando di risolvere il problema con i prefissi dei produttori ma non ha aiutato :(Ho avuto solo uno senza prefissi e agiva lo stesso :(altri suggerimenti? – gogachinchaladze
Aggiungi snippet di codice funzionante per favore, non puoi capire il tuo problema –