我正在使用jquery autocomplete。当ajax请求完成jquery调用带有响应的jsonpCallback。你建议把jsonpCallback(数据)函数放在哪里使用$ .each中的数据
$(".autoComplete").autocomplete({ source: function(req, add){
$.ajax({
type: "GET",
url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
dataType:"jsonp"
});
var suggestions = [];
//process response
$.each(data, function(i, val){ //how do I get data variable
suggestions.push(val.value); });
add(suggestions);
}
});
答案 0 :(得分:1)
根据:jquery api 你应该实施“成功阻止”
$.ajax({
url: 'ajax/test.html',
success: function(data) {
$('.result').html(data);
alert('Load was performed.');
}
});
为您的例子:
var suggestions = [];
$(".autoComplete").autocomplete({ source: function(req, add){
$.ajax({
type: "GET",
url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
dataType:"jsonp"
success: function(data) {
$.each(data, function(i, val){
suggestions.push(val.value); });
add(suggestions);
}
}
});
});
// 编辑:也许这可以提供帮助:jsonpcallback
答案 1 :(得分:0)
$(".autoComplete").autocomplete({ source: function(req, add){
$.ajax({
type: "GET",
url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
dataType:"jsonp"
success: function(data)
{
alert('Here is my data' + data);
}
});
});
您应该在ajax调用中添加一个成功函数,这意味着如果GET请求成功,请执行以下操作:.each循环将迭代数据。
还有其他块可以帮助您调试代码,例如错误块等。