爲了讓我的jQuery代碼模塊化,即可重用,我在另一個函數fetch_ajax()
中放置了一個ajax()函數。我試圖用其他地方的參數fetch_ajax()
撥打,應該只需運行包含的ajax()
並返回響應。jQuery:一個包含ajax()函數的函數不會返回ajax()響應
但是,這並沒有發生 - 相反,fetch_ajax()
顯然返回虛假太快,致電,並不會等到ajax()
已完成請求並獲得響應。
下面的代碼:
的fetch_ajax()
功能
function fetch_ajax(url) {
$.ajax({
type: 'GET',
url: url,
success: function(response) {
return response;
}
});
}
調用函數:
function caller() {
response = fetch_ajax('script.php');
alert(response); //this is always 'undefined'
}
在fetch_ajax()
,我試着不直接返回response
從ajax()
內,但寫作它變成了一個變量,然後在ajax()
之後返回那個變量 - 那沒有也沒有工作(同樣的結果)。
當我在第return response;
之前在ajax()
函數的內部發出第二個提醒時,我看到一個在caller()
之內的一個火災。所以我在想,不知何故,fetch_ajax()
不會等待包含的函數在它返回false之前執行。
我在做什麼錯?
謝謝。
謝謝你,這是我需要的解釋。我認爲現在對我來說最好的方法就是將'fetch_ajax()'重寫爲'output_ajax()',如果你趕上了我的漂移。隨着少數更多的參數傳遞給這個新的函數,它也應該能夠解釋lolcats :)謝謝。 – bobsoap 2010-06-29 23:12:58
+1對於憤怒的lolcats:P – grant 2011-11-30 00:28:18