2012-02-09 112 views
2

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

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

这是我当前的代码:

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

回答

0
+0

我很欣赏LMGTFY的尝试,但这不是很有用 - 1)我不想修补HighCharts,因为我希望能够使用未来的版本和2)我不想要上下文菜单。 – 2012-02-09 15:48:21

0

这不是一个完整的解决方案:我也没弄明白如何捕获右击事件。

但这里有一个解决方法单击图表背景:

  • 让用户做了Shift键单击
  • 回调提供一个回调像以前
  • ,检查事件。如果按下换挡,做不同的事情

这里的回调可能是什么样子:

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