如何动态加载highcharts

时间:2012-02-02 06:53:42

标签: javascript jquery highcharts

我正在尝试动态加载高级图表,如下面的代码所示:它无法识别highcharts变量。如果我通过静态方式加载高级图表,它可以工作。请帮忙。

我使用的是jquery版本4和highcharts最新版本1.0

<html>
<head>
//loading jquery
<script src="js/libs/jquery-1.4.2.js" type="text/javascript"></script>
<script type="text/javascript">
var chart1;

$(document).ready(function() {
$.getScript('js/libs/highcharts.src.js', function() {

            });


  chart1 = new Highcharts.Chart({
         chart: {
            renderTo: 'chart1',
            type: 'bar'
         },
         title: {
            text: 'Fruit Consumption'
         },
         xAxis: {
            categories: ['Apples', 'Bananas', 'Oranges']
         },
         yAxis: {
            title: {
               text: 'Fruit eaten'
            }
         },
         series: [{
            name: 'Jane',
            data: [1, 0, 4]
         }, {
            name: 'John',
            data: [5, 7, 3]
         }]
      });
   });


</script>


</head>

<body>
<div id="chart1"></div>

</div>
</body>
</html>

1 个答案:

答案 0 :(得分:11)

$.getScript()是一个异步操作,这意味着它将获取脚本,但在处理其余代码之前不会等待它完成。因此,您需要等待某些指示已检索到代码。如果您查看the docs,您会注意到$.getScript()仅为此目的而成功回调函数。实际上,您的代码中已经有一个空的成功函数,只需在那里移动Highcharts声明即可。换句话说,这样做:

$(document).ready(function() {
    $.getScript('js/libs/highcharts.src.js', function() {
        chart1 = new Highcharts.Chart({
            // Highcharts options
        });
    });
});