您需要定義處理的preventDefault行爲的功能,例如:在你的代碼
document.addEventListener('touchmove', preventDefault, false);
function preventDefault(e) { e.preventDefault(); };
這樣一來以後,你可以刪除事件偵聽器,並重新啓用默認滾動:
document.removeEventListener('touchmove', preventDefault, false);
現在您可以在需要時重新添加和刪除它。
使用內聯,匿名函數像你原來的職位,因爲你可以參考一個匿名函數的唯一辦法是先讓它火,然後刪除它的參考,你不能做到這一點。例如:
document.addEventListener('touchmove', function(e) {
e.preventDefault();
// some more logic...
this.removeEventListener('touchmove', arguments.callee, false);
}, false);
顯然這不是你想要的效果。您也可以創建一個對象並存儲對處理該事件的方法的引用。如果你想深入一點,我發現這個線程很有幫助:How to removeEventListener on anonymous function?
防止touchmove做任何事情都停止Android上的Phonegap應用程序中的所有滾動!當我刪除該行時,爲了測試,一切正常......包括iScroll元素。所以我想知道我是否需要這條線? –