2014-06-17 109 views
5

高圖表有雙擊事件?Highcharts - 雙擊事件

plotOptions: { 
     series: { 
      cursor: 'pointer', 
      marker: { 
       radius: 2 
      }, 
      point: { 
       events: { 
        // like this any event?If not, any alternative 
        dbclick: function() { 
         $('.highcharts-tooltip').show(); 
        }, 
        click: function() { 
         $('.highcharts-tooltip').show(); 
        }, 
        mouseOver: function() { 
         $('.highcharts-tooltip').hide(); 
        }, 
        mouseOut: function() { 
         $('.highcharts-tooltip').hide(); 
        } 
       } 
      } 
     } 
} 

我想實現的是,我想顯示工具提示雙擊點。

+1

可能的重複[如何檢測雙擊或長時間點擊H點ighcharts圖表?](http://stackoverflow.com/questions/18403261/how-to-detect-double-clicks-or-long-clicks-on-points-in-highcharts-charts) –

回答

1

我嘗試使用擴展,但它沒有工作,所以我決定寫一個小雙擊事件(基於點擊事件)。

缺點是它封裝在'click'事件中,但這不是一個大問題,因爲它調用了一個單獨的函數。

首先,定義設置:

 var doubleClicker = { 
      clickedOnce : false, 
      timer : null, 
      timeBetweenClicks : 400 
     }; 

然後定義的情況下,雙擊「復位」功能雙擊的速度不夠快,並雙擊回調:

 // call to reset double click timer 
     var resetDoubleClick = function() { 
      clearTimeout(doubleClicker.timer); 
      doubleClicker.timer = null; 
      doubleClicker.clickedOnce = false; 
     }; 

     // the actual callback for a double-click event 
     var ondbclick = function(e, point) { 
      if (point && point.x) { 
       // Do something with point data 
      } 
     }; 

,並在圖表的高點設置:

series: [{ 
    point: { 
    events: { 

     click: function(e) { 
     if (doubleClicker.clickedOnce === true && doubleClicker.timer) { 
      resetDoubleClick(); 
      ondbclick(e, this); 
     } else { 
      doubleClicker.clickedOnce = true; 
      doubleClicker.timer = setTimeout(function(){ 
      resetDoubleClick(); 
      }, doubleClicker.timeBetweenClicks); 
     } 
     } 

    } 
    } 
}]