我有一个通过get json函数添加数据元素的脚本。如何确保在get函数完全完成并呈现后运行其他函数?
$(document).ready(function() {
ADD.Listitem.get();
});
它basicly增加了数据的一串HTML标签等。我的问题是以下几点:
$(document).ready(function() {
ADD.Listitem.get();
var arr = [];
$(".Listitem-section-item-title").each(function() {
arr.push($(this.text()));
});
});
-
get: function(web) {
AST.Utils.JSON.get("/_vti_bin/AST/ListItem/ListitemService.svc/GetListItem", null, AST.Listitem.renderListitem);
},
renderListitem: function(data) {
$("#Listitem-template").tmpl(data["ListItemResults"]).prependTo(".ListItem-section-template");
}
这里是JSON得到:
ADD.Utils.JSON.get = function (url, data, onSuccess) {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
async: true,
url: url,
data: data,
cache: false,
dataType: "json",
success: onSuccess,
error: ADD.Utils.JSON.error,
converters: { "text json": ADD.Utils.JSON.deserialize }
});
}
数组每个循环不是ru因为get方法没有完成呈现Listitem-section-item-title
选择器,所以它不能找到选择器。
有没有什么好的解决方案呢?
如果'get()'是异步的(它看起来像),它应该接受一个回调参数或返回一个承诺。你是这个功能的作者吗? –
你的意思是'get'是异步的吗?然后,它可能接受回调或返回一个承诺* [编辑:该死的,弗雷德里克更快......至少它是可见的我同意:)] *。 –
您可以将Ajax代码放入$(document).ready()函数中,然后将额外的代码放入Ajax调用的Success函数中。 – Nunners