Javascript Can';t更新按钮上的highcharts数据-变量可见性或事件处理问题

Javascript Can';t更新按钮上的highcharts数据-变量可见性或事件处理问题,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我对JS非常陌生,不理解一些问题 我的页面中有: <script...> $(function() { var charts_data = <%= @elms.get_charts_data %>;

我对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>
添加按钮和事件处理程序:

$('#button').click(set_elms_chart_data());
$('#button').click(set_elms_chart_data);
但是,我不知道把这些放在哪里,或者我犯了什么错误。 如果我把这些放进去

$(function() {  
我得到一个错误:

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_数据:

$('#button').click(set_elms_chart_data());
您要做的是使用set_elms_chart_data作为回调函数:

$('#button').click(set_elms_chart_data);