Как отключить, включить, затем снова отключить прокрутку в ipad / iphone с помощью e.preventDefault () ;? - PullRequest
4 голосов
/ 23 августа 2010

У меня уже отключено, и я могу включить его снова. Я использовал:

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

В документе .ready (); чтобы отключить его.

И я использовал это, чтобы включить его.

function doTouchMove(state) {
    document.ontouchmove = function(e){
      return state;
    }
}

У меня так, когда пользователь дважды щелкает элемент, вызывается doTouchMove. Но как мне сделать его снова отключенным?

Спасибо

Ответы [ 2 ]

2 голосов
/ 23 августа 2010

Вместо этого можно создать переключатель, в котором ваша функция doTouchMove () переключается между false и true каждый раз, когда она вызывается:

(function () { // Set up a closure so we don't pollute the global scope
    var state = false;
    function doTouchMove() {
        state = !state;
    }
    document.ontouchmove = function(e){
        return state;
    }
    document.getElementById("myDoubleClickElement").ondblclick = doTouchMove;
})();

Теперь, каждый раз, когда вы дважды щелкаете # myDoubleClickElement , он переключает значение переменной state между false и true , эффективное отключение по четным щелчкам и включение по нечетным щелчкам.

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

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

Но то, что я сделал, чтобы исправить это было положено это

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

В свою собственную функцию, так же, как и doTouchMove (). Затем, когда я захотел, чтобы он снова перестал двигаться, я просто вызвал имя этой функции предотвращать дефолт.

Я не знаю, почему это имеет значение, но это работает! :)

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