Highcharts 提供了检测图表点点击的机会,但是否可以检测其他事件,例如双击或 mousedown 事件?
提前致谢
每个组件仅支持某些事件,例如 Chart 组件将检测addSeries
、click
、load
、redraw
和selection
。我不相信这个集合是可扩展的,所以你不能捕获不同的事件,比如mousedown
.
您可以尝试检查页面的源并将侦听器附加到 HighCharts 生成的元素,但这将是一个未记录的解决方法,并且可能会在未来的版本中中断。此外,如果您必须支持 < IE9,您将需要 SVG 和 VML 生成标记的处理程序。
您可以通过一些活动获得创意。下面是使用点击处理程序检测双击的示例:
var clickDetected = false;
// create the chart
$('#container').highcharts({
chart: {
events: {
click: function(event) {
if(clickDetected) {
alert ('x: '+ event.xAxis[0].value +', y: '+ event.yAxis[0].value);
clickDetected = false;
} else {
clickDetected = true;
setTimeout(function() {
clickDetected = false;
}, 500);
}
}
}
},
...
这是可能的,但方式不同。在 Highcharts 中,您可以使用element.on向每个元素添加事件。例如:
chart.series[0].data[0].graphic.on('dblclick', function() {
//callback here
});
和简单的 jsFiddle给你。好消息是您可以添加到所有元素,并确保在所有浏览器中都能正常工作。