2012-02-09 135 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