簡短的回答,你不能,AJAX中的第一個A代表異步,這意味着當你到達返回語句時請求仍然在進行。
您可以與同步(非異步)要求這樣做,但它通常是一個壞事
類似下面現在應該返回數據。
function getPrice(productId, storeId) {
var returnHtml = '';
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: false,
cache: false,
dataType: "html",
success: function(html){
returnHtml = html;
}
});
return returnHtml;
}
但
除非你真的很需要能夠使用從測試的返回值直線距離,你會多更好傳遞一個回調到測試。喜歡的東西
function getPrice(productId, storeId, callback) {
jQuery.ajax({
url: "/includes/unit.jsp?" + params,
async: true,
cache: false,
dataType: "html",
success: function(html){
callback(html);
}
});
}
//the you call it like
getPrice(x,y, function(html) {
// do something with the html
}
編輯嘖,你們是更快地說什麼我說:-)
Gotchya - 我想我必須這樣做。但如果我必須這樣做呢? – 2009-09-22 01:29:04
如果不知道你打算如何使用getPrice()方法,很難回答。它用於什麼?它是如何使用的?它是需要調整的「外層」代碼。 – cletus 2009-09-22 01:30:05
好吧,我明白了。我沒有意識到productId和storeId會在範圍內,我實際上可以將這些東西傳遞給回調。 – 2009-09-22 01:42:36