2011-07-28 11 views
19

मान लीजिए कि jQuery मोबाइल ने यूआई को प्रस्तुत करने के बाद कुछ कोड चलाने के लिए चाहते हैं। mobileinit ईवेंट से पहले उठाए जाने के बाद से काम नहीं करता है। एक त्वरित Google खोज इंगित करती है कि $(document).ready का उपयोग केवल JQM के साथ काम नहीं करेगा; लेकिन मैंने अभी कोशिश की है (mobileinit के बाद बुलाया गया) और यह मेरे लिए काम करता है: मेरा कोड भाग गया और गतिशील रूप से अद्यतन तत्व इत्यादि ठीक है। तो मैं सोच रहा हूं, क्या कोई कारण है कि इसका उपयोग नहीं कर रहा है (यह अविश्वसनीय है या जेक्यूएम को गड़बड़ कर रहा है), या इसके बारे में जानकारी केवल गलत नहीं है? मैं क्या खो रहा हूँ?

अद्यतन: here एक प्रदर्शन के लिए देखें।

+1

क्या आपने http://stackoverflow.com/questions/5622581/jquery-mobile-document-ready-equivalent की जांच की है? –

+0

@ जॉर्ज: हाँ, और उस प्रश्न के अनुसार '$ (दस्तावेज़) .ready' * काम नहीं करता है। लेकिन आश्चर्यजनक रूप से, मेरे लिए, यह करता है। तो मुझे लगता है कि मैं सिर्फ यह पता लगाने की कोशिश कर रहा हूं कि यह अभी काम करता है, या यदि जेक्यूएम से निपटने के दौरान कुछ अजीब गठिया हैं तो मुझे पता होना चाहिए। –

उत्तर

12

संभवतः आप $ (दस्तावेज़) को पढ़ने का कारण हैं। JQuery मोबाइल के साथ पहले से काम नहीं करेगा यह है कि जब भी आप छद्म-पृष्ठ देखते हैं तो यह आग नहीं होता है। उस ने कहा, यह तब भी ट्रिगर होता है जब एचटीएमएल दस्तावेज़ लोड होता है।

आप कोड है कि हर बार जब आप एक छद्म पेज आप इस कोड का उपयोग कर सकते हैं देखने से चलाता चलाना चाहते हैं:

$('[data-role="page"]').live('pageshow', function() { 
    //run your code here 
}); 

नोट: वहाँ अन्य हुक है कि आप के रूप में अच्छी तरह से बाध्य कर सकते हैं कर रहे हैं (pageshow, pagehide , pagebefoershow, pagebeforehide), प्रलेखन यहां पाया जा सकता: http://jquerymobile.com/demos/1.0b1/docs/api/events.html

---------- संपादित ----------

मैं इस बारे में सोच रहा था और $ (दस्तावेज़) के लिए सबसे अच्छा एनालॉग .ready() "पेजशो" घटना के लिए बाध्यकारी नहीं है, यह "पेजक्रेट" घटना के लिए बाध्यकारी होगा। $ (दस्तावेज़) .ready() प्रति पेज लोड में एक बार आग लगती है, और "पेजक्रेट" छद्म पृष्ठों के लिए समान होती है जबकि प्रत्येक पृष्ठ को प्रदर्शित होने पर "पेजशो" आग लगती है।

तो यदि कोई उपयोगकर्ता होम-स्क्रीन से दूर क्लिक करता है और फिर होम स्क्रीन पर वापस जाने के लिए बैक बटन पर क्लिक करता है, तो "पेजशो" होम स्क्रीन के इस दूसरे (और बाद में) "दिखाए" पर आग लग जाएगा।

इसके अलावा, "पेजशो" के लिए उपयोगकर्ता को उस पेज पर नेविगेट करने की आवश्यकता होती है, जिस पर यह बाध्य है।

+0

आह, मैं देखता हूं; तो विचार यह है कि यह "काम नहीं करता" सभी गलतफहमी के आधार पर था? ये मजाकिया है; मैंने इन वैकल्पिक दृष्टिकोणों को देखा और सोचा कि वे * आदर्श से कम * थे क्योंकि उन्होंने पूरे दस्तावेज़ (यानी, jQuery मोबाइल साइट) के लिए केवल एक बार के बजाय प्रत्येक छद्म पृष्ठ को दिखाए जाने से पहले एक घटना को आग लगाना पड़ा था। जबकि उत्तरार्द्ध ठीक वही है जो मैं चाहता हूं। –

+0

@jasper आप अल्फा संस्करण एपीआई घटनाओं से जुड़ रहे हैं, बीटा संस्करण –

+0

अच्छा पकड़, मेरे बुकमार्क फ़ोल्डर को अपडेट करने के लिए समय का उपयोग करने के लिए सबसे अच्छा ... – Jasper