$ .getJSON成功関数内で、最初に別の要素のクリックイベントをトリガーします。
$('#' + data[0].ID).trigger('click');
トリガーされたクリックイベントには、大量のデータをdivにロードするための独自の$.getJSONメソッドがあります。トリガーされたイベントの次の行:
$.each(data[0].ListEntries, function (key, val) {
//this relies on the triggered click event
//having completely loaded all data!
}
最初は$.eachは何もしていないように見えましたが、トリガーされたイベントの直後にアラートを追加しました。アラートに応答した後、$。eachのコードはそれが何をすべきかを示しています。
クリックイベントがデータの読み込みを完了する前に$.eachが実行されていると思います。
setTimeoutは、クリックイベントがデータをロードするのに十分な時間一時停止しますが、任意の時間を設定したくありません。
setTimeout(function() {
$.each(data[0].ListEntries, function (key, val) {
//this relies on the triggered click event
//having completely loaded all data!
}
}, 1000);
また、$。whenと$ .thenを試しましたが、役に立ちませんでした(ただし、$。eachが$ .then内で$.eachの前にアラートを追加すると、$。eachが機能するまでに遅延が発生します)。
$.when($('#' + data[0].ID).trigger('click')).then(function () {
$.each(data[0].ListEntries, function (key, val) {
//this relies on the triggered click event
//having completely loaded all data!
})