2012-03-27 15 views
5

मैं 2 पृष्ठों है कि मैं swipeleft और swiperight घटना (आगे और पीछे) लेकिन जब मैं अन्य पेज के लिए स्वाइप, jQuery pageinit ईवेंट सक्रिय नहीं है का उपयोग करके लिंक किया है और मैं सिर्फ शीर्ष लेख के साथ छोड़ दिया हूँ और नहीं pageinit पाद लेख। क्या मुझे चेंज पेज इवेंट का उपयोग करना चाहिए या क्या मुझे लोडपेज इवेंट का उपयोग करना चाहिए? मुझे पता है कि jquerymobile के दूसरे संस्करण में एक बग है जहां पेजिनिट इवेंट आग नहीं है लेकिन मैं पहले से ही आरसी 1 का उपयोग कर रहा हूं जो इसे पहले से हल कर चुका है लेकिन घटना अभी भी फायरिंग नहीं कर रही है। फायरिंग से इसे रोक रहा है क्या? अग्रिम में धन्यवाद।jQuery फायरिंग

 <!DOCTYPE html> 
<html> 
<head> 
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no;" /> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
<title>esports</title> 
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css" /> 
<link rel="stylesheet" href="jquery.zrssfeed.css" /> 
</script> 

<style> 


</style> 
</head> 
<body> 
<!-- index --> 
<div data-role="page" id="index"> 
    <div data-role="header"> 
     <h1>esports times</h1> 
    </div> 
    <!--/header--> 
    <div data-role="content" id="content"> 
     <div id="currentFeed">teamliquid. &nbsp; skgamin</div> 
     <ul id="rssFeed" data-role="listview"> 
     </ul> 
    </div> 
</div> 

</body> 
</html> 

<!-- load javscripts here--> 
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> 
<script src="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.js">  </script> 
<script src="jquery.zrssfeed.js"></script> 
<script> 
    $('#index').bind("pageinit", (function() { 
     $('#rssFeed').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', { 
      limit: 10, 
      date: false, 
     }); 
    })); 

    $('#index').bind("swipeleft", function() { 
     $.mobile.changePage("teamliquid.html", "slide", true, false); 
    }); 
</script> 

<!-- /javascript--> 

उत्तर

6

बदलें पेज आपके लिए क्या देख रहा है। लोड पेज बस इसे डोम में लोड करता है ताकि आप वास्तव में पेज दिखाने से पहले हेरफेर कर सकें।

जब पेज के लिए बाध्य init अपने में एक विशिष्ट आईडी का उपयोग कर अपने pageinit घटना बाध्यकारी सुनिश्चित करें। वे दोनों आईडी = "# इंडेक्स" नहीं हो सकते हैं। यह भी सुनिश्चित करें कि आप प्रत्येक पृष्ठ पर पृष्ठ init बांधें। आपके कोड में केवल #index पृष्ठ के लिए पेजिनिट फायरिंग होगी, न कि teamliquid.html।

उपयोग अपने दस्तावेज़ों के <head></head> में निम्नलिखित:

$(document).on('pageinit','#index', function(){ 
    $('#rssFeed').rssfeed('http://feeds.reuters.com/reuters/oddlyEnoughNews', { 
     limit: 10, 
     date: false, 
    }); 
}); 
$(document).on('pageinit','#otherpage', function(){ 
    ... This would be for the other page you are referring to.... 
}); 
$(document).on('swipeleft','#index', function(){ 
    $.mobile.changePage("teamliquid.html", { transition: "slide" }); 
}); 
$(document).on('swiperight','#otherpage', function(){ 
    $.mobile.changePage("index.html", { transition: "slide" }); 
}); 

या हर पृष्ठ

$(document).on('pageinit','[data-role=page]', function(){ 
    ....ground breaking code...  
}); 

के लिए आग के लिए pageinit पाने के लिए jQuery 1.7 बाँध के रूप में, रहते हैं, और प्रतिनिधि सभी का उपयोग .on() विधि। यह JQM के लिए आपके पेजिनिट को बाध्य करने का अनुशंसित तरीका है। आप प्रत्येक पृष्ठ पर अपना कोड आग लगाने के लिए '#index' को '[डेटा-रोल = पेज]' के साथ बदलने जैसी अच्छी चीजें भी कर सकते हैं। यहां एक जेएसफ़िल्ड दिखा रहा है कि यह वास्तव में काम करता है। http://jsfiddle.net/codaniel/cEWpy/2/

+0

यह शायद मैं के लिए क्या देख रहा हूँ लेकिन सिर्फ महसूस किया कि विंडोज फोन 7 फोन की खाई को कड़ी चोट की घटनाओं का समर्थन नहीं करता है। :(हालांकि मदद के लिए धन्यवाद, बहुत सराहना की। –

-1

कोशिश
$('#index').bind("pageinit", (function() { ... }));

के बजाय
$(function() { /* dom ready */ });
उपयोग करने के लिए तो फिर तुम सिर टैग के अंदर स्क्रिप्ट टैग डाल सकते हैं, लाइन 9 पर अनाथ </script> हटाएँ:

कोड का पालन है और आपके पास स्वच्छ HTML है और सब कुछ ठीक काम करेगा।

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