2010-02-04 16 views
5

दस्तावेज़ को निष्पादित न करने के कारण क्या हो सकते हैं। पहले से ही आंशिक पृष्ठ के भीतर? यह ठीक 2 बार काम करता है, लेकिन 3 समय कुछ भी नहीं पर html के अपडेट के बाद होता है:

alert(html); 
alert($(PopUpItem)); 
$(PopUpItem).html(html); 
alert('in set popup html completed'); 

मैं सभी अलर्ट मार डाला है, PopupItem और html सही मान है। मैं $ .post द्वारा सर्वर कॉल निष्पादित करने के लिए JQuery का उपयोग कर रहा हूं।

साथ ही, क्या कुछ वाक्यविन्यास त्रुटि होने पर मुझे पकड़ने के लिए त्रुटि हैंडलर हो सकता है?

उत्तर

12

आपके लौटे AJAX के भीतर, आपको $ (दस्तावेज़) .ready() कॉल की आवश्यकता नहीं होनी चाहिए। डीओएम पहले ही लोड हो चुका है। इस तरह के कुछ आसान चाल चलाना चाहिए:

<script type="text/javascript"> 
// Do something here. 
</script> 
+4

मुझे दस्तावेज़ को हटाने के लिए विचार से नफरत है। पहले से, क्योंकि स्क्रिप्ट के लिए जो पृष्ठ लोड और AJAX दोनों पर वापस लौटाया जा सकता है, मुझे डबल तर्क लागू करने की आवश्यकता है, लेकिन यह काम करता है! – st78

2

document.ready पृष्ठ को मूल रूप से लोड होने पर ही निष्पादित किया जाता है।

त्रुटि हैंडलर रखने के लिए, आप अपने AJAX कॉल (http://api.jquery.com/jQuery.ajax/) करने के लिए अधिक $ .ajax का उपयोग कर सकते हैं।

0

किसी भी asynchroneously उत्पन्न तत्वों को घटनाओं के लिए बाध्य करने के लिए आप livequery पर एक नज़र डालनी चाहिए: http://docs.jquery.com/Plugins/livequery

2

आप कह रहे हैं कि html स्ट्रिंग $(PopUpItem).html() के लिए पारित एक document.ready(function() { ... }); इसके अंदर के साथ एक <script> ब्लॉक शामिल हैं?

यदि ऐसा है तो ready ईवेंट हैंडलर आग नहीं करता है कि स्क्रिप्ट बिल्कुल नहीं चलती है। this question देखें जिसमें एक ही 'तीसरा समय' व्यवहार है।

मार्कअप में <script> टैग लोड न करें। यह बिल्कुल विश्वसनीय क्रॉस-ब्राउज़र, jQuery या कोई jQuery नहीं है।

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