Проблема с захватом событий касания Mobile Safari - PullRequest
1 голос
/ 24 ноября 2010

У меня мобильное веб-приложение, работающее в Safari на iPad.

Кажется, что даже если веб-страница имеет правильный размер для экрана, перетаскивание страницы все равно заставляет ее частично прокручиваться на экране.

Мой план состоял в том, чтобы предотвратить любое необработанное событие касания, чтобы ничего не делать:

document.addEventHandler('touchstart', do_nothing, false);

function do_nothing(event) {
    event.preventDefault();
}

Обратите внимание на последний параметр false - он должен указывать обработчику работать только в режиме всплытия событий, а не в режиме захвата. Событие касания определенного элемента должно по-прежнему срабатывать, как и ожидалось.

предотвращает прокрутку . Однако он также предотвращает попадание на страницу любых событий click. Кто-нибудь может предложить решение, которое блокирует действие прокрутки страницы по умолчанию, не блокируя при этом клики?

1 Ответ

1 голос
/ 04 мая 2011

Решение состоит в том, чтобы зарегистрировать нулевой обработчик в touchmove вместо события touchstart.

...