简短的回答,你不能,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