2012-04-29 12 views
19

मैं गतिशील रूप से <ul data-role="listview"> भर रहा हूं, फिर location.href="#Results" पर कॉल कर रहा हूं, जहां सूची है, और अंततः listview('refresh')jQuery मोबाइल त्रुटि "प्रारंभिक से पहले सूचीदृश्य पर विधियों को कॉल नहीं कर सकता"

यह सब एक ही पृष्ठ से अजाक्स अनुरोध की सफलता कॉलबैक में किया जाता है। यह कम या कम काम करता है लेकिन मुझे निम्न त्रुटि मिल रही है:

Uncaught cannot call methods on listview prior to initialization; attempted to call method 'refresh' 

मुझे लगता है कि jQuery मोबाइल ने अभी तक सूचीदृश्य नहीं बनाया है। मैं क्या कर सकता था?

उत्तर

10

http://jquerymobile.com/demos/1.1.0/docs/api/events.html आपको पेजिनिट ईवेंट पर हुक करना होगा। इससे पहले आप किसी भी JQM विधियों को कॉल नहीं कर सकते हैं। i.e .:

$('#Results').bind('pageinit', function() { 
    $('#myListview').listview('refresh'); 
}); 
+3

'#results' यहां – Amit

+2

@ user1656416 # परिणाम jQuery मोबाइल पेज आईडी है। यहां अधिक जानकारी: http://jquerymobile.com/demos/1.2.0/docs/pages/dialog/index.html। – HoffZ

+0

इस त्रुटि में सुझाव देने का प्रयास करने के बाद मेरा पृष्ठ अब प्रदर्शित नहीं होता है। यह त्रुटि से छुटकारा पाता है, लेकिन जिस पेज को मैं रीफ्रेश कर रहा हूं वह दिखाने के लिए नहीं दिखाया जाएगा। – JzInqXc9Dg

14

मुझे एक ही त्रुटि थी। मैंने इसे अपनी क्वेरी में "दृश्यमान" जोड़कर हल किया, इसलिए यह केवल तभी दिखाई देगा जब सूची दिखाई दे।

तो अपने कोड कुछ इस तरह दिखेगा:

$('#myListview:visible').listview('refresh'); 

मेरे लिए ठीक काम किया!

+1

धन्यवाद - Google में आपका उत्तर मिला, मेरी समस्या हल हो गई! – Greg

+0

आपका स्वागत है! खुशी है कि मैं मदद कर सकता हूं :) – Ptur

+0

इस तरह की एक समस्या थी, और आप मदद का जवाब देते हैं! धन्यवाद – Ovi

28

यदि वह पहले से प्रारंभ या नहीं है आप की जाँच करनी चाहिए, इस मामले में सूची को ताज़ा यह आरंभ नहीं हो जाता अन्यथा प्रति निम्नलिखित के रूप में बनाने को गति प्रदान:

if ($('#myListview').hasClass('ui-listview')) { 
    $('#myListview').listview('refresh'); 
    } 
else { 
    $('#myListview').trigger('create'); 
    } 
2

उपयोग location.href
वास्तव में location.href के बजाय $.mobile.changePage("#Results"); पृष्ठ पुनः लोड इसलिए सूची दृश्य

और फिर नष्ट listview.refresh

+0

यह वास्तव में एक अच्छा विचार था। आशीष धन्यवाद –

+0

सबसे स्वागत है फिलिप –

31

बस किसी भी बिना सूचीदृश्य विधि कॉल हो जाता है पहले पैरामीटर:

$('#myListview').listview().listview('refresh'); 

समाधान http://www.gajotres.net/uncaught-error-cannot-call-methods-on-prior-to-initialization-attempted-to-call-method-refresh/

+2

व्हाओ! दीवार के खिलाफ मेरे सिर को टक्कर देने के एक घंटे बाद मेरे लिए काम किया। – ethanpil

+1

मेरे लिए समान: जेक्यूएम 1.4 में।5, मैंने [FullCalendar] (http://fullcalendar.io/) में किसी ईवेंट पर क्लिक करते समय एक गतिशील पॉपअप बनाने का प्रयास किया ... भविष्य के उपयोगकर्ताओं को जो यह धागा ढूंढते हैं: मैंने निम्न कोड 'eventClick का उपयोग किया : समारोह (calEvent, jsEvent, दृश्य) { \t \t \t \t \t वर $ पॉपअप = $ ('

testPopup
') .appendTo ('[डेटा भूमिका = "सामग्री"]'); \t \t \t \t \t \t $ ('# eventPopup')। पॉपअप() पॉपअप ("खुला"); \t \t \t \t} ' – intrixius

+1

@ethanpil और intrixius मुझे खुशी है कि मैंने आपके सिर को बड़ी क्षति प्राप्त करने से बचाया। :-) –

0

से लिया बस जोड़ने listview.refresh मेरे लिए ठीक काम करता है, और मैं भी div में सामग्री लोड करने ajax उपयोग कर रहा हूँ।

document.getElementById("myListview").innerHTML = xmlhttp.responseText; 
//works fine on my work 
$('#myListview').listview('refresh'); 

यहां मेरी पोस्ट।

jquery mobile ajax load content into a div element will lose it's css style

मैं लगभग 3 घंटे खर्च मेरी पोस्ट का समाधान probem.finaly जवाब here.thanks खोजने के लिए।

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