右键单击绑定事件

时间:2012-02-09 15:26:18

标签: event-handling highcharts right-click

如何绑定或识别右键单击事件?

我有一个散点图,左键单击在点击的位置添加一个点;我想右键单击以删除该点(如果存在)。

这是我目前的代码:

var chart = new Highcharts.Chart({
   chart: {
       renderTo: 'container',
       events: {
           click: function(event) {
               var cs = [Math.floor(event.xAxis[0].value),
                         Math.floor(event.yAxis[0].value)];
               this.series[0].addPoint(cs);
           }
       },
        type: 'scatter',

   },
   ... etc. ...
});

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

这不是一个完整的解决方案:我没有弄清楚如何捕获右键单击事件。

但是这是点击图表背景的解决方法:

  • 让用户执行shift-click
  • 像以前一样提供回调
  • 在回调中,检查事件。如果按下班次,请执行不同的操作

回调可能是这样的:

function clickChart(event) {
    var isShiftPressed = event.shiftKey;
    if(isShiftPressed) {
        // do something
    } else {
        // do something different
}

事件对象具有布尔属性shiftKey(和altKey)。

以下是删除积分的解决方法:(实际上,这不是解决方法 - 我只是没有意识到有更简单的方法!)

  • 积分有自己的事件
  • 只需设置一个在点击时删除点数的回调

示例:

function clickPoint(event) {
    this.remove();
}

var chart = new Highcharts.Chart({
    chart: {
        type: 'scatter',
        renderTo: 'chart',
    },
    series: [{
         point: {
             events: {
                 click: clickPoint
             }
         }
    }]
});

注意:该文档至少具有误导性,但jsfiddle示例似乎是正确的。它似乎表明point中的series选项不是