我有一个jquery .each
循环,该循环从具有特定类的页面上的所有元素的json请求中检索远程数据。一组元素是一组li
标签,我想在使用远程信息更新li
元素之后使用另一个函数进行排序。等待.each().getJSON请求在执行回调之前完成
在.each
循环之后传入排序函数不会对列表排序,因为项目尚未从json请求中完成加载。排序工作如果我将排序功能作为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的最佳变化之一。 +1 –
我意识到我的代码中存在拼写错误,它应该是$('。fetching')。我正在通过DOM搜索所有具有类的元素.fetching然后发出远程请求并替换该元素的文本。 – Joey