तुम इतनी तरह, एक समारोह है कि 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?
कुछ भी करने से टचमोव को रोकने से एंड्रॉइड पर मेरे फोनगैप ऐप में सभी स्क्रॉलिंग रोक रही थी! जब मैंने परीक्षण के लिए उस पंक्ति को हटा दिया, तो सब ठीक काम किया .... iScroll तत्वों सहित। तो मुझे आश्चर्य है कि मुझे उस लाइन की ज़रूरत है? –