2010-10-20 26 views
15

मैंने इस तरह की समस्याओं के लिए बहुत से प्रश्न और समाधान देखे हैं लेकिन मेरे लिए कुछ भी काम नहीं किया है। मेरे पास यह है:JQuery .load() कॉलबैक फ़ंक्शन

function() { 
    $("#bdiv").load("bosses.php #icc10n",function(){ 
     return $("#bdiv").html(); 
    }); 
} 

लेकिन यह काम नहीं कर रहा है। स्पष्टीकरण के लिए, मैं सामग्री को #bdiv में लोड करना चाहता हूं और फिर #bdiv की सामग्री वापस कराना चाहता हूं। लेकिन ऐसा लगता है कि सामग्री लोड होने से पहले $("#bdiv").html() वापस लौटाया जा रहा है, भले ही मैंने इसे कॉलबैक फ़ंक्शन में रखा हो।

+0

क्या आप पूरा कोड दिखा सकते हैं? यह अज्ञात फ़ंक्शन में क्यों है? –

उत्तर

37
$("#bdiv").load("bosses.php #icc10n",function(data){ 
    // use the data param 
    // e.g. $(data).find('#icc10n') 
}); 
+1

धन्यवाद, अब कमाल से काम कर रहा है! – Dan

0

आप ऐसा नहीं कर सकते हैं।

AJAX असीमित है, जिसका अर्थ है कि सर्वर प्रतिक्रिया भेजने से पहले आपका कार्य वापस आ जाएगा।
आपको कॉलबैक का उपयोग करके अपने कॉलर को मान पास करने की आवश्यकता है, जिस तरह $.load करता है।

+0

@ ओन्केल्बोर्ग: उसे अपनी कॉलबैक करके मूल्य वापस करने की जरूरत है। – SLaks

+0

.html() का मूल्यांकन तब किया जाता है जब फ़ंक्शन घोषित किया जाता है, और जब इसे कॉल नहीं किया जाता है, है ना? – slezica

+0

@ सैंटियागो: पूरी तरह से गलत। 'वापसी' कथन आंतरिक कॉलबैक विधि से वापस आ रहा है; यह वापसी मूल्य jQuery द्वारा अनदेखा किया जाता है। बाहरी समारोह तुरंत लौटता है। – SLaks

1

के रूप में तक मुझे पता है कि तुम एक $ .ajax(), $ .post(), $ .Get(), आदि .. विधि के कॉलबैक फ़ंक्शन में एक वापसी बयान नहीं कर सकता। हालांकि, आप 'डेटा' मान को फ़ंक्शन के बाहर घोषित एक चर में संग्रहीत कर सकते हैं, और उसके बाद कॉलबैक फ़ंक्शन निष्पादित होने पर उस चर के मान को सेट कर सकते हैं। और कई अन्य विकल्प हैं।

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