【发布时间】:2011-06-24 12:34:21
【问题描述】:
我有一个 jquery .each 循环,它从 json 请求中检索具有特定类的页面上所有元素的远程数据。一组元素是一组li 标签,在li 元素已使用远程信息更新后,我想使用另一个函数对其进行排序。
在.each 循环之后传入排序函数不会对列表进行排序,因为项目尚未从 json 请求完成加载。如果我将 sort 函数作为 getJSON 请求的 .complete 回调传入,但我只希望排序对整个列表运行一次,而不是对每个项目运行一次。
fetch_remote_data(function(){sort_list_by_name();});
function fetch_remote_data(f){
jQuery('.fetching').each(function(){
var oj = this;
var kind = this.getAttribute('data-kind');
var url = "http://something.com"
jQuery.getJSON(url, function(json){
$(oj).text(json[kind]);
$(oj).toggleClass('fetching');
});
});
if (typeof f == 'function') f();
};
有什么建议吗?
【问题讨论】:
标签: jquery callback delay getjson