0
我正在嘗試在不同容器的同一網頁上顯示多個highcharts。我知道我可以複製粘貼一個標準的highcharts函數一堆時間來將許多圖形渲染到不同容器中的頁面,但是由於我想要顯示的高圖的數量將取決於從數據庫(在下面的例子中,圖表數量將等於@value)我最好只寫一個highcharts函數,並多次遍歷它,在每次迭代中,我希望將圖表選項設置爲不同的。我已經試過各種排列如下代碼:javascript顯示使用單個函數的多個Highcharts
for (i = 0; i <= <% @value %>; i ++){
$(function (i) {
graphTitleArray = <% @markers.split(',') %>
graphTitle = graphTitleArray[i]
graphData = <% @array[i].to_json %>
switch(i){
case 0:
containerNum = 'container0'
case 1:
containerNum = 'container1'
...
}
$(containterNum).highcharts({
title: {
text: graphTitle
}
series: [{
name: 'something',
data : graphData
}]
//more options here
})
}
}
嘗試這種類型的策略多次之後,我不能讓圖形渲染或獲取功能認識的「我」正確的值。有誰知道更好的方法來做到這一點? 謝謝!
感謝您的回覆。當我嘗試使用這段代碼時,我得到一個錯誤,指出行graphData = <%@array [i] .to_json%>中的「未定義的局部變量或方法」i「。你知道爲什麼會發生這種情況嗎? – adub
我認爲你不需要圍繞代碼的匿名函數。因爲你有它,並且你永遠不會真的把'i'的值傳遞給它,所以當函數在函數內運行'i'的值是''undefined''。我已經用我認爲正確的方式更新了我的答案。 –
這仍然給我同樣的錯誤。 'i'的值在line graphTitle = graphTitleArray [i]中被識別,但是當我嘗試執行ruby代碼時,它會在下一行中給出錯誤 – adub