我正在使用lazy_highcharts gem 创建一个highchart。我想利用 afterSetExtremes 回调在缩放时重新生成页面上的一些其他数据。我尝试了多种方法,目前正在尝试:
@chart = LazyHighCharts::HighChart.new('graph') do |f|
f.chart(:zoomType =>'x', :defaultSeriesType => 'spline')
f.x_axis(:type=> 'datetime', :events => {:afterSetExtremes => "functon(event){alert('something')}"} )
end
但这给了我错误
Uncaught TypeError: Object functon(event){alert('something')} has no method 'apply'
当我缩放图表时,在 JavaScript 控制台中。我认为这与生成器未正确设置回调函数、将其设置为字符串而不是将其解释为函数有关。
我还尝试在创建后通过 JavaScript 将其设置在我的图表对象上,但到目前为止还没有成功。以下是一些尝试
chart_my_id4.xAxis.events = {setExtremes: function(event) {
alert('set extremes');
}};
chart_my_id4.xAxis[1].events = {setExtremes: function(event) {
alert('set extremes');
}};
那里也没有运气。
如有任何见解,谢谢。
最佳答案
不太熟悉... ruby,但我查看了 github 上的源代码,他们在将函数设置为属性时执行以下操作:
:formatter => "function() { return this.x; }".js_code
值得尝试添加 .js_code 并看看它是否有效,这样你最终会得到:
@chart = LazyHighCharts::HighChart.new('graph') do |f|
f.chart(:zoomType =>'x', :defaultSeriesType => 'spline')
f.x_axis(:type=> 'datetime', :events => {
:afterSetExtremes => "functon(event){alert('something')}".js_code
})
end
关于highcharts - Highcharts 的 afterSetExtremes 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15554153/