Мобильный Firefox нажмите и удерживайте события - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь создать простое веб-приложение, в котором элемент можно щелкнуть или удерживать для вызова другой функции.

$(document).on("click",'.element', function() {
    clickFunction();
});
let timeoutId = 0;
$(document).on('pointerdown','.element', function() {
    timeoutId = setTimeout(holdFunction, 500);
}).on('pointerup pointerleave', '.element', function() {
    clearTimeout(timeoutId);
});

И он был протестирован и отлично работал на Chrome, Firefox и мобильном Chrome.Проблема в том, что на мобильном Firefox событие 'pointerdown' вообще не вызывается, и я не знаю, почему.

1 Ответ

0 голосов
/ 08 октября 2018

Оказывается, мобильный браузер Firefox не поддерживает события указателя.Чтобы проверить, поддерживает ли браузер события указателя, просто используйте

if (window.PointerEvent)

На мобильном Firefox следует использовать сенсорные события (touchstart, touchend и т. Д.)

Стоит также отметить, что если вы неЕсли вы не хотите вызывать holdFunction , в то время как удерживает элемент и одновременно прокручивает , код для событий указателя, приведенный в вопросе, будет работать нормально, но при использовании событий касания вам, вероятно, потребуется дополнительная проверкаесли окно прокручивалось

$(window).scroll(function(event){clearTimeout(timeoutId);});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...