У меня есть очень специфическая проблема. Я пишу веб-страницу для мобильных телефонов, на которой есть кнопка. Я обнаруживаю touchevent
в каждом браузере, включая IE, но в IE это довольно специфично. Через несколько секунд он автоматически завершается. Можете ли вы как-то помочь мне? Вот мой код (модифицированный один, но по-прежнему не работает должным образом):В Windows Phone Phone TouchStart событие заканчивается автоматически через несколько секунд
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);
}
И HTML тег имеет в нем:
-ms-touch-action: none !important;
touch-action: none !important;
, но это не помогает.
Вы не сказали, какую версию IE вы видите, но я вижу, что вы обнаруживаете префиксные события поставщика перед событиями, отличными от префикса. На https://msdn.microsoft.com/en-us/library/windows/apps/dn263112.aspx#document_object_model__dom__improvements префиксные версии устарели и должны использоваться только тогда, когда версии с префиксом недоступны. Возможно, переупорядочивание вещей поможет. Префиксные версии в какой-то момент перестанут работать. –
Я пытался исправить проблему с префиксами поставщика, но это не помогло :(У меня был только один без префиксов, и он действовал одинаково :(любые другие предложения? – gogachinchaladze
Добавить фрагмент рабочего кода, пожалуйста, не можете понять ваши проблема –