对于学校历史项目,我正在制作一个时间轴网页(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工作,谢谢!出于某种原因,我忽略了我可以这样做的事实。 –