HTML с event.preventDefault - PullRequest
       10

HTML с event.preventDefault

0 голосов
/ 18 августа 2010

Если HTML-документ отключен. (без прокрутки ...)

document.ontouchmove = function(event){ event.preventDefault(); }

Можно ли выборочно включить элементы в HTML-документе? такой как div, span Какой javascript я должен использовать для этого?

1 Ответ

5 голосов
/ 18 августа 2010

Вот довольно хакерское решение.

Измените ваш touchmove обработчик следующим образом:

document.ontouchmove = function (event) {
    if (!event.elementIsEnabled) {
        event.preventDefault();
    }
};

Тогда для элемента, который вы хотите включить:

element.ontouchmove = function (event) {
    event.elementIsEnabled = true;
};

Это работает, потому что:

  • Когда на элементе запускается событие touchmove, оба этих обработчика событий обрабатывают событие в фазе пузырьков. Это означает, что обработчик элемента touchmove срабатывает первым, потому что он ближе всего к источнику события.
  • Когда два обработчика событий обрабатывают одно и то же событие, они получают один и тот же объект события.
  • Вам разрешено устанавливать собственные произвольные свойства для объекта события.

Итак, обработчик элемента touchmove просто устанавливает настраиваемое свойство для объекта события, а затем обработчик документа touchmove проверяет это настраиваемое свойство, чтобы определить, следует ли предотвратить действие по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...