![](/img/trans.png)
[英]Why does Javascript's Date() function break for my birthday in Safari?
[英]Why does changing the name of my function break my JavaScript?
我有以下完美的作品
$(function() {
// Create the chart
chart = new Highcharts.StockChart({
...
});
});
但是當我進行以下修改時
createCharts();
function createCharts() {
// Create the chart
chart = new Highcharts.StockChart({
...
});
}
我收到以下錯誤消息
消息:“ Highcharts”未定義
沒有其他改變,為什么上面的腳本破壞了我的腳本?
在第一個示例中,當文檔准備就緒時(即,在加載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>
在第一個示例中,該函數在包含Highcharts定義的文件加載后運行。 第二,它在找到函數定義后立即執行,可能在加載Highcharts文件之前。
可能是因為Highcharts庫尚未加載第二個庫。 在加載highcharts js文件之前,您是否正在運行此代碼?
$()是一個特殊功能,它等待dom准備就緒。
我猜Highcharts尚未在調用createCharts時創建,而是在DOM准備就緒之前創建的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.