【发布时间】:2014-08-28 10:05:20
【问题描述】:
我有一个 jquery ajax 调用如下...
$(".eetag").each(function(){
var currentItem = $(this);
var desc = $(this).attr('data-desc');
$.get('service/transactionCategoryByKeyword.json',{'phrase': desc}, function(data){
//alert(":" + desc + ":" + data.tranCategoryCode);
$(currentItem).tagsinput('add', data);
});
});
它有时有效,有时无效,我认为是因为我没有告诉它等到成功?是对的吗?有人可以建议应该如何编写调用吗?
---编辑---
谢谢大家。在做了一些研究之后,我重新编写了 ajax 调用,它好多了,但我有时仍然看到 ajax 没有等待。特别是它只发生(即不等待)我页面上的第一个 eetag。我是否正确地重写了它?
$(".eetag").each(function(){
var currentItem = $(this);
var desc = $(this).attr('data-desc');
$.ajax({
url: 'service/transactionCategoryByKeyword.json',
type: 'GET',
async: false,
contentType: 'application/json',
data: {'phrase': desc},
success: function(data) {
$(currentItem).tagsinput('add', data);
}
});
});
谢谢
【问题讨论】:
-
它不会。因为是异步函数
-
如果您希望它在执行其余代码之前完成,您将需要使用
$.ajax()函数并将 aynsc 选项设置为 false。 -
我已经根据您的 cmets 尝试修复它,它现在几乎一直在工作,但我确实注意到有时它似乎仍然没有等待。我有什么遗漏吗?
-
我再次编辑了我的帖子。我现在唯一的问题是,在极少数情况下,对于页面上的第一个 eetag,我有时不会得到结果。