私はjsonの.each
ループを使用して、あるクラスのページ上のすべての要素のjsonリクエストからリモートデータを取得します。要素の1つのセットは、li
タグのグループであり、li
要素がリモート情報で更新された後、別の機能を使用して並べ替えたいと思っています。項目は、JSONリクエストからのロード完了していないので、リストをソートしません.each
ループの後にソート関数に渡すコールバックを実行する前に.each().getJSONリクエストが終了するのを待ちます。
。並べ替えが機能する場合私は、getJSONリクエストのコールバックとして.complete
コールバックとしてソート関数を渡しますが、ソートは各項目ではなくリスト全体に対して1回だけ実行します。
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.5を使用している場合
jqueryの長期的な変更の1つ。 +1 –
私のコードにtypoがあったことに気付きました。$( '。fetching')でなければなりません。私はクラスを持つすべての要素のDOMを検索しています。次に、リモート要求を行い、その要素のテキストを置き換えます。 – Joey