我是JS的新手,有些问题不明白。
我的页面中有:
<script...>
$(function() {
var charts_data = <%= @elms.get_charts_data %>;
var elms_chart;
$(document).ready(function() {
function create_elev_dist_chart() {
elms_chart = $("#elms_chart").highcharts({
...
series: [{
name: "H",
pointInterval: 10,
data: (function () {
var el_data = [];
var t = 1;
for (var index in charts_data) {
console.log(charts_data[index].el);
el_data.push([t, charts_data[index].el]);
t += charts_data[index].t;
};
return el_data;
})()
},
...
});
</script>
我还写了一个非常简单的函数来更新图表上的数据:
function set_elms_chart_data() {
elms_chart.series[0].setData([1, 1]);
};
添加按钮和事件处理程序:
$('#button').click(set_elms_chart_data());
但是,我不知道把这些放在哪里,或者我在哪里出错。如果我把这些放到
里面$(function() {
I get error:
TypeError: 'undefined' is not an object (evaluating 'elms_chart.series')
如果里面
$(document).ready(function() {
得到这个错误:
TypeError: 'undefined' is not an object (evaluating 'elms_chart.series[0]')
你能帮我解决这个问题吗?
- 如何访问图表?
- 我应该把代码的事件处理程序?
您正在使用以下代码立即执行set_elms_chart_data:
$('#button').click(set_elms_chart_data());
你要做的是使用set_elms_chart_data作为回调函数:
$('#button').click(set_elms_chart_data);