2011-03-16 7 views
8

के साथ संक्रमण किया जाता है जब कोई पृष्ठ दूसरे में संक्रमण करता है (और location.hash सामग्री का उपयोग करता है), यह दूसरा पृष्ठ किसी भी जावास्क्रिप्ट को लोड नहीं करता है। पृष्ठ लोड होने पर मैं जावास्क्रिप्ट को कैसे निष्पादित कर सकता हूं (यदि यह एक अपने माता-पिता से संक्रमण से "आता है")?किसी पृष्ठ के बाद जावास्क्रिप्ट को निष्पादित करने के लिए jQuery मोबाइल

मेरे पास page2.html के लिंक के साथ page1.html है। यह पृष्ठ 2.html एक संक्रमण के साथ लोड होता है (डिफ़ॉल्ट रूप से स्लाइड प्रभाव)।

पेज 2.html कोई जावास्क्रिप्ट निष्पादित नहीं किया गया है। मैं एक साधारण

<script type="text/javascript"> 
alert("x"); 
</script> 

साथ की कोशिश की लेकिन काम नहीं करता। मैंने बहुत सारे document.ready, bind, live, oncreate, pagecreate, और इसी तरह से प्रयास किया।

+0

क्या आप जो कुछ करने की कोशिश कर रहे हैं उस पर थोड़ा और प्रकाश डाल सकते हैं? यदि यह एक HTML मामला है, तो क्या आप HTML को हाथ से लिख रहे हैं या आप इसे गतिशील रूप से उत्पन्न कर रहे हैं। यदि उत्तरार्द्ध, आप किस भाषा का उपयोग करने जा रहे हैं? – amccormack

+0

मैंने अधिक जानकारी के साथ प्रश्न संपादित किया – FlamingMoe

उत्तर

9

आप कॉलबैक फ़ंक्शन का उपयोग कर सकते हैं। एनीमेशन कॉल करने के बाद एक समारोह।

jQuery में

:

$('#yourElement').animate({ 
    opacity: 0.25, 
    }, 5000, function() { 
    // Animation complete. add your callback logic here 
}); 

हैं का उपयोग कर वेबकिट बदलाव:

:

$('#yourElement').addEventListener(
'webkitTransitionEnd', 
function(event) { 
    // Animation complete. add your callback logic here 
}, false); 

और jQuery मोबाइल का उपयोग कर, यह आप 'pageshow' और 'pagehide' घटना श्रोताओं का उपयोग कर सकते प्रदर्शित होता है या

http://jquerymobile.com/test/docs/api/events.html

$('div').live('pageshow',function(event, ui){ 
    alert('This page was just hidden: '+ ui.prevPage); 
}); 

$('div').live('pagehide',function(event, ui){ 
    alert('This page was just shown: '+ ui.nextPage); 
}); 
+0

क्षमा करें, लेकिन मैं एनीमेशन को संभाल नहीं पाता हूं। JQueryMobile में पृष्ठों के बीच संक्रमण हार्डकोड किया गया है। – FlamingMoe

+0

मैंने जेक्यूएम दस्तावेज के लिंक के साथ अपना उत्तर अपडेट किया जो पेजशो इवेंट का उल्लेख करता है। ऐसा लगता है कि आपको जो चाहिए वह होना चाहिए। –

+0

धन्यवाद डीए, लेकिन यह काम नहीं कर रहा है ... घटनाओं को प्रारंभ करने से पहले ईवेंट कहा जाता है() घटना ... मैंने मूल स्रोत कोड की जांच की है ... मैं डेवलपर्स को "अपूर्ण" वैकल्पिक " "घटना ... वैसे भी धन्यवाद – FlamingMoe

3

इसके अलावा इस मुद्दे पर प्रकाश डाला यहाँ किया जा रहा है: jquerymobile - include .js and .html

मैं सभी जावास्क्रिप्ट स्थित/बहुत पहले पृष्ठ पर शामिल होने से सफलता मिली है, और लिंक किए गए प्रत्येक पृष्ठ के लिए मैं की तरह एक ब्लॉक के अंदर कोड लिपटे है इस:

$('#page2').live('pageshow',function(){ 

    //page twos JS     
}); 

$('#page3').live('pageshow',function(){ 

    //page threes JS     
}); 

और निश्चित रूप से प्रत्येक दस्तावेज़ इसी आईडी के साथ हमेशा की तरह कंटेनर शामिल करना चाहिए:

<section id="page2" data-role="page" data-theme="a"> ... 
9
मूल रूप से jquerymobile में

जब आप एक पृष्ठ करना संक्रमण केवल अंदर

<div data-role="page"> 
    ... 
    </div> 

सामग्री तो प्रभावी ढंग से अपने सभी स्क्रिप्ट और सब कुछ आप को शामिल किया है बदल जाती है

<head></head> 

टैग में लोड हो रही नहीं है।

तो यह आप नीचे दिए गए

<div data-role="page"> 
    ... 
    <script type="text/javascript" src="yourScript.js"></script> 
    </div> 

धन्यवाद, दिनेश Parne की तरह पेज के अंदर अपनी स्क्रिप्ट शामिल करने की आवश्यकता को हल करने के

+1

स्क्रिप्ट टैग के माध्यम से एक .js फ़ाइल लोड हो रहा है लेकिन इस स्क्रिप्ट के लिए कॉल करने वाले प्रत्येक पृष्ठ के लिए एक अलग फ़ाइल की आवश्यकता है। न केवल सामान्य मामले के लिए यह काफी उलझन में है जब आपको केवल प्रत्येक पृष्ठ के लिए प्रारंभिक कोड की कुछ पंक्तियों की आवश्यकता होती है, लेकिन यह आमतौर पर कैश समस्याओं से पीड़ित होगी, यानी पृष्ठ के लिए स्क्रिप्ट केवल पृष्ठ पर पहली बार निष्पादित की जाएगी। –

0

वहाँ करने के लिए दो तरीके हैं इस 1.) सभी स्क्रिप्ट जोड़ें बहुत पहले पृष्ठ 2 में फ़ाइलें।) जब भी नया पृष्ठ आप का उपयोग कॉल लिंक rel = "बाहरी" (जैसे <a href="#demo" rel="external">Next Page</a>) जब यह अगले पृष्ठ कर अपने हैडर अनुभाग को निष्पादित करेंगे

लेकिन पहले 1 समय के साथ

0

समस्या के अधिकांश में सबसे अच्छा है rel="external" यह है कि इसका मतलब है कि कोई भी JQuery मोबाइल पेज संक्रमण काम नहीं करेगा ....

0

यदि आप संक्रमण के लिए टैग का उपयोग कर रहे हैं तो मुझे एक ही समस्या थी, target="_self" विशेषता को जोड़ने का प्रयास करें। यह मेरे लिए काम किया।

संबंधित मुद्दे