2013-02-01 43 views
10

मैं jQuery मोबाइल के साथ एप्लिकेशन पर काम कर रहा हूं, मैं उपयोगकर्ता पेज में सभी पेजों को एक बड़ी फाइल में डालने की कोशिश कर रहा हूं और इसे एक बड़ी .js फ़ाइल द्वारा चला सकता हूं। क्या मैं नहीं जानता कि यदि मैं अपना .js इस तरह से फ़ाइल लिख सकते हैं:jQuery पेज पर/लाइव/बाइंड पेजिनिट, पेजशो

प्रारंभ करने में जब Userpanel भरी हुई है

$(document).on('pageinit', function(){ 

}); 

और जब कुछ पेज आईडी द्वारा बुलाया जाएगा अगर मैं रख सकते हैं की तुलना में इस:

$(document).on('pageinit', function(){ 

    $("#userpanel").on('pageshow', function(){ 

    }); 

    $("#*********").on('pageshow', function(){ 

    }); 

    $("#*********").on('pageshow', function(){ 

    }); 

}); 

और इसलिए:

$("#userpanel").on('pageshow', function(){ 

}); 
प्रत्येक के लिए इस तरह पहले एक और हर पृष्ठ के अंदर

चालू है, क्या यह काम करता है या मैं jQuery/JS की बुनियादी अवधारणा को गलत समझता हूं? यदि हाँ एक अच्छा तरीका क्या है?

उत्तर

3

सबसे पहले page events अन्य पृष्ठ ईवेंट के बच्चों के रूप में उपयोग नहीं करते हैं, ऐसे काम करने के लिए इसका मतलब नहीं था। इस मामले में, उन सभी pageshow ईवेंट सामान्य रूप से उनके माता-पिता pageinit के बिना ट्रिगर हो जाएंगे।

Here's एक काम jsFiddle उदाहरण।

पता लगाने के लिए jQuery Mobile अधिक के बारे में पेज घटनाओं, इस ARTICLE पर एक नज़र डालें यह मेरी निजी ब्लॉग है और अधिक पारदर्शी होने के लिए। या यह HERE पाया जा सकता है।

तो सही पृष्ठ की घटनाओं की घोषणा करने के रास्ते इस तरह होगा:

$("#userpanel").on('pagebeforeshow', function(){ 

}); 

$("#userpanel").on('pageshow', function(){ 

}); 

$("#userpanel").on('pagebeforeshow', function(){ 

}); 

$("#userpanel").on('pageshow', function(){ 

}); 

$("#userpanel").on('pagebeforeshow', function(){ 

}); 

$("#userpanel").on('pageshow', function(){ 

}); 
+1

वहाँ स्क्रिप्ट जो .html फ़ाइल के वास्तविक लोड पर ही चल पाएंगे जोड़ने के लिए रास्ता नहीं है, लेकिन जब मैं के बीच स्विच कर रहा हूँ नहीं फाइल के अंदर पेज? –

+1

तर्क समान है, बस उन्हें एक आईडी दें, केवल एक अलग बात यह है कि उन्हें पहली HTML फ़ाइल में लोड/प्रारंभ किया जाना चाहिए। – Gajotres