代码在控制台上运行正确但在实际代码中没有运行

时间:2016-11-21 20:05:25

标签: javascript jquery charts google-visualization

我正在使用谷歌图表,并通过

手动定位vaxis标题
$($('text').filter(':contains("Recurrence Interval")')[0]).attr('x', '220');
$($('text').filter(':contains("Hazard Score")')[0]).attr('x', '50');
$($('text').filter(':contains("Hazard Score")')[0]).attr('y', '225');

事情是,第一行100%罚款。在我的代码中,接下来的两行似乎不起作用。但是,当我在控制台中运行底部的两行时,它可以工作。这全部由谷歌图表setOnLoadCallBack函数包装,因此图表应该已经加载。

1 个答案:

答案 0 :(得分:2)

需要等待图表的'ready'事件才能解雇 在进行修改之前

在绘制图表之前设置事件监听器,例如

var chartDiv = document.getElementById('chart_div');
var chart = new google.visualization.BarChart(chartDiv);

google.visualization.events.addListener(chart, 'ready', function () {
  $($('text').filter(':contains("Recurrence Interval")')[0]).attr('x', '220');
  $($('text').filter(':contains("Hazard Score")')[0]).attr('x', '50');
  $($('text').filter(':contains("Hazard Score")')[0]).attr('y', '225');
});

chart.draw(data, options);

如果正在使用动画,请改为监听'animationfinish'事件