我有以下完美的作品
$(function() {
// Create the chart
chart = new Highcharts.StockChart({
...
});
});
但是当我做出以下修改时
createCharts();
function createCharts() {
// Create the chart
chart = new Highcharts.StockChart({
...
});
}
我收到以下错误消息
消息:'Highcharts'未定义
没有其他改变为什么以上破坏了我的剧本?
答案 0 :(得分:3)
在第一个示例中,当文档准备就绪时(即,在加载HighCharts脚本之后)调用该函数。在第二个示例中,HighCharts脚本可能是在您运行的脚本之后定义的,因此您需要等待文档准备就绪:
$(createCharts); // <- pass createCharts to $()/jQuery.ready()
function createCharts() {
// Create the chart
chart = new Highcharts.StockChart({
...
});
}
...或更改脚本的顺序:
<head>
<!-- libraries first -->
<script src="jquery.js"></script>
<script src="highcharts.js"></script>
<!-- your script last -->
<script src="myscript.js"></script>
</head>
答案 1 :(得分:1)
在第一个示例中,函数在加载包含Highcharts定义的文件之后运行。第二,它在找到函数定义后立即执行,可能在加载Highcharts文件之前执行。
答案 2 :(得分:1)
可能是因为Highcharts库尚未加载第二个库。您是否在加载highcharts js文件之前运行此代码?
答案 3 :(得分:1)
$()是一个特殊的函数,等待dom准备就绪。
我猜测在调用createCharts时尚未创建Highcharts,而是在DOM准备好之前创建。