2016-09-15 24 views
0

我想加载我的谷歌图表之前,我运行我的JavaScript的其余部分。我如何确保在我使用它之前加载我的图表?

$(document).ready(function() { 
google.charts.load("current", {packages:["corechart"]}); 

我最初把这个代码,允许一些时间图表加载,但有时候图表比预期时间长和我的代码休息。我可以使用javascript中的初始化函数吗?

setTimeout(function() { 
    map.setView([gon.locations[3].latitude, gon.locations[3].longitude - .01],15); 
    if(typeof lastMarker !== "undefined") 
     map.removeLayer(lastMarker); 
    $('progress').animate({value: gon.locations[3].overall_vulnerability}, {duration: 1000}); 
    $('#vul').html(gon.locations[3].overall_vulnerability); 
    var markers = L.mapbox.featureLayer().setGeoJSON(getData(gon.locations[3])).addTo(map); 
     google.charts.setOnLoadCallback(drawChart(gon.locations[3])); 
    openNav(); 
    lastMarker = markers; 
}, 1500); 

回答

3

这就是setOnLoadCallback()函数的用途 - 它在加载完成时运行。

google.charts.load("current", {packages:["corechart"]}); 
google.charts.setOnLoadCallback(function() { 
    // Everything you want to happen after loading goes here 
}); 

documentation

之前,你可以使用任何你必须等待加载完成由google.charts.load加载的包。仅等待文档完成加载是不够的。由于在加载完成之前可能需要一些时间,因此您需要注册一个回调函数。

0

,你也可以包括在load声明callback ...

google.charts.load("current", { 
    callback: function() { 
    // google.charts and google.visualization now available 
    }, 
    packages:["corechart"] 
}); 
相关问题