對於學校歷史項目,我正在製作一個時間軸網頁(live here)。爲了避免必須重複輸入每個細節的細節,我將它們放在電子表格中,並將其導出爲JSON。如何強制getJSON的同步執行?
淨資產值,我創建標記使用JavaScript事件發生的年份鏈接。
我想,然後使用slick.js,一個jQuery插件,打開導航到一個旋轉木馬,這表現直播網站上面鏈接的的/slick-test-static.html。
我的代碼:
$(document).ready(function(){
$.getJSON("data.js", function(result){
for (var i = 0; i < result.length; i++){
var string = JSON.stringify(result[i]);
var parsed = JSON.parse(string);
$('.slider').append("<li><a href=\"#" + parsed.number + "\">" + parsed.year + "</a></li>");
}
});
$('.slider').slick({
slidesToShow: 8,
slidesToScroll: 5,
autoplay: true,
autoplaySpeed: 3000
});
});
該鏈接的創建,但滑塊不可。我做了一個頁面,其中創建的鏈接而不是使用JSON,它工作正常。
我認爲這個問題是因爲該方法的getJSON是異步的,所以瀏覽器嘗試創建滑塊之前的項目甚至添加到滑塊。首先,是這個問題?如果是這樣,解決它的最好方法是什麼?
你可以用」這樣做。你應該使用承諾。 – SLaks
嘗試在下載JSON後異步調用浮動,而不是嘗試阻止用戶界面。簡單地把它的調用放在回調中,在那個循環之後。 – Bergi
@Bergi工作,謝謝!出於某種原因,我忽略了我可以這樣做的事實。 –