पर एक से अधिक बार आग लगता है मुझे एक फोनगैप & jQuery मोबाइल ऐप है जो एंड्रॉइड और वेब पर अच्छी तरह से काम करता है। आईओएस पर मुझे अप्रत्याशित परिणाम मिल रहे हैं, जो इस तथ्य के कारण प्रतीत होता है कि दस्तावेज़.पेजिनिट ईवेंट जिस पर मैं ऐप की अधिकांश प्रक्रियाओं के लिए हैंडलर को बांधता हूं उसे दो बार निकाल दिया जाता है।दस्तावेज़ पेजिनिट आईओएस (jQueryMobile)
नहीं, मैंने इसे दो बार बांध नहीं दिया। नहीं, मैंने document.ready का उपयोग नहीं किया था। हां, मैंने इसे दस्तावेज़ में बाध्य किया था, स्क्रिप्ट में जल्दी और किसी भी अन्य समारोह के अंदर नहीं।
$(document).on('pageinit',function(event){
alert(' Pageinit on document');
//Some more code
})
पहली बार यह आग, स्प्लैश स्क्रीन भी दिखाई दे रहा है। इस बिंदु पर, एक्सकोड के साथ मैकबुक प्रो पर परीक्षण करते समय, कंसोल भी उपलब्ध नहीं है: कंसोल.लॉग का उपयोग करते समय उपर्युक्त संदेश कंसोल में दिखाई नहीं देता था।
दूसरी बार jQueryमोबाइल ने पहला पृष्ठ बनाया है, इसके बाद आग लग गई।
इस डबल फायरिंग का कारण क्या है और मैं इसके बारे में क्या कर सकता हूं?
संपादित करें: मैंने बाद में देखा कि उस पेजिनिट में दूसरी बार आग नहीं होती है, लेकिन हर बार जब मैं एक नई डेटा-भूमिका = 'पेज' div खोलता हूं। नीचे मेरा जवाब देखें।
Thaaaaank आप! मैं पिछले कई मिनटों के लिए समाधान की तलाश में था, Google "पेजिनिट को दो बार बुलाया" के लिए कुछ भी नहीं देता है, और आपका '.one() 'आदर्श समाधान है। अगर मैं कर सकता था तो मैं दस से ऊपर हट जाऊंगा :) – PiotrK
कुछ हद तक आश्चर्यजनक रूप से, मैंने डेस्कटॉप ब्राउज़र (आईई 10 और क्रोम/विंडोज) में अपने ऐप के कोड का उपयोग करते समय यह व्यवहार देखा है और आईओएस में नहीं। इस सुझाए गए फिक्स ने उन मामलों में भी मदद की। महान सुझाव। धन्यवाद! –