我正在尝试动态加载高级图表,如下面的代码所示:它无法识别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>
答案 0 :(得分:11)
$.getScript()
是一个异步操作,这意味着它将获取脚本,但在处理其余代码之前不会等待它完成。因此,您需要等待某些指示已检索到代码。如果您查看the docs,您会注意到$.getScript()
仅为此目的而成功回调函数。实际上,您的代码中已经有一个空的成功函数,只需在那里移动Highcharts声明即可。换句话说,这样做:
$(document).ready(function() {
$.getScript('js/libs/highcharts.src.js', function() {
chart1 = new Highcharts.Chart({
// Highcharts options
});
});
});