2012-02-23 26 views
6

मैं पेज के डेटा-यूआरएल को प्राप्त करना चाहता हूं जो पृष्ठ परिवर्तन को ट्रिगर करता है। कोई विचार?Jquery मोबाइल - पेजबरेन्चेंज ईवेंट में डेटा-यूआरएल कैसे प्राप्त करें

$(document).bind("pagebeforechange", function (event , data) { 
    // get the data-url of the link that triggered the page change 
}); 

उत्तर

8

उपयोगकर्ता जहाँ से data वस्तु के भीतर आ रहा है आप पृष्ठ प्राप्त कर सकते हैं:

$(document).bind("pagebeforechange", function (event , data) { 
    console.log(data.options.fromPage.attr('data-url')); 
});​ 

ध्यान दें कि आप document के लिए बाध्य कर रहे हैं के बाद से एक data-role="page" तत्व के बजाय तत्व जो कि प्रत्येक पृष्ठ-परिवर्तन के लिए दो बार आग लग जाएगा, एक बार fromPage और toPage के लिए। प्रत्येक पृष्ठ के ईवेंट के लिए ईवेंट हैंडलर में पारित डेटा दूसरे पृष्ठ के डेटा के समान होगा।

यहाँ एक डेमो है: http://jsfiddle.net/Atfrf/2/

+0

यह दो बार आग करता है लेकिन दूसरी बार कोई पेज नहीं है। यदि आप वर्तमान पृष्ठ चाहते हैं तो आप कभी भी कर सकते हैं: $ .mobile.activePage.attr ('data-url') –

0

तुम क्यों नहीं कर सकते $(this).parent('div[data-role|="page"]').attr('data-url')

+1

वर्तमान में ओ पी, 'document' तत्व के लिए बाध्य किया जाता है तो' 'this' document' तत्व के पास भेजेगा। यदि आप '[data-role =" पृष्ठ "] जैसे कुछ से बंधे हैं तो आप' this' का उपयोग कर सकते हैं, लेकिन चूंकि यह ईवेंट दोनों पृष्ठों पर आग लग जाता है, इसलिए आप दोनों पेज अपने स्वयं के ईवेंट में 'इस' के बराबर होंगे संचालकों। – Jasper

2

attr विधि कुछ ब्राउज़रों में काम नहीं कर रहा है, तो आप jqmData विधि का उपयोग करने के लिए बेहतर चाहते। jqmData किसी भी नामस्थान पर काम कर सकता है।

$(document).bind("pagebeforechange", function (event , data) { console.log(data.toPage.jqmData('url')); });​

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