2

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

提前致谢

4

2 回答 2

5

每个组件仅支持某些事件,例如 Chart 组件将检测addSeriesclickloadredrawselection。我不相信这个集合是可扩展的,所以你不能捕获不同的事件,比如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); 
                }
            }
        }        
    },
   ...
于 2013-08-23T13:02:29.957 回答
2

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

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

简单的 jsFiddle给你。好消息是您可以添加到所有元素,并确保在所有浏览器中都能正常工作。

于 2013-08-23T13:14:33.617 回答