Sarà necessario definire una funzione che gestisce il comportamento preventDefault, in questo modo:
document.addEventListener('touchmove', preventDefault, false);
function preventDefault(e) { e.preventDefault(); };
In questo modo più avanti nel codice, è possibile rimuovere il listener di eventi e riattivare predefinito scorrimento:
document.removeEventListener('touchmove', preventDefault, false);
Ora è possibile riaggiungerlo e rimuoverlo quando necessario.
Non è possibile eseguire questa operazione utilizzando un inline, funzione anonima come nel tuo post originale, perché l'unico modo è possibile fare riferimento a una funzione anonima è quello di lasciare prima che il fuoco e poi rimuovere il riferimento ad esso, ad esempio:
document.addEventListener('touchmove', function(e) {
e.preventDefault();
// some more logic...
this.removeEventListener('touchmove', arguments.callee, false);
}, false);
Ovviamente questo non è l'effetto che vorresti avere. È anche possibile creare un oggetto e memorizzare un riferimento a un metodo che gestisce l'evento. Se stai cercando di approfondire un po 'di profondità ho trovato utile questo thread: How to removeEventListener on anonymous function?
Prevenire il touchmove dal fare qualsiasi cosa è stato interrompere tutto lo scorrimento nella mia app Phonegap su Android! Quando ho rimosso quella linea, per il test, tutto ha funzionato bene ... compresi gli elementi iScroll. Quindi mi chiedo se ho bisogno di quella linea? –