如何在Highcharts图表中检测点击的双击或长按?

时间:2013-08-23 12:45:36

标签: events highcharts

Highcharts提供了检测图表点数点击的机会,但是有可能 检测其他事件,例如双击或mousedown事件?

提前致谢

2 个答案:

答案 0 :(得分:4)

每个组件仅支持某些事件,例如,图表组件将检测addSeriesclickloadredrawselection。我不相信这个集合是可扩展的,所以你无法捕获像mousedown这样的不同事件。

您可以尝试检查页面的来源并将侦听器附加到HighCharts生成的元素,但这将是一个未记录的解决方案,并且在将来的版本中可能会中断。此外,如果你必须支持< IE9你需要SVG和VML生成标记的处理程序。

您可以通过某些活动获得创意。以下是使用单击处理程序检测双击的示例:

<强> Working Demo

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); 
                }
            }
        }        
    },
   ...

答案 1 :(得分:1)

这是可能的,但是以不同的方式。在Highcharts中,您可以使用element.on向每个元素添加事件。例如:

chart.series[0].data[0].graphic.on('dblclick', function() {
   //callback here
});

而且simple jsFiddle适合你。好的是你可以添加到所有元素,并确保在所有浏览器中工作。