2014-06-17 35 views
5

Biểu đồ cao có sự kiện nhấp đúp như thế nào?Highcharts - Nhấp đúp vào sự kiện

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

Điều tôi muốn đạt được là, tôi muốn hiển thị mẹo công cụ khi nhấp đúp vào điểm.

+1

có thể trùng lặp của [Cách phát hiện nhấp đúp hoặc nhấp chuột dài vào các điểm trong H ighcharts charts?] (http://stackoverflow.com/questions/18403261/how-to-detect-double-clicks-or-long-clicks-on-points-in-highcharts-charts) –

Trả lời

1

tôi đã cố gắng sử dụng phần mở rộng, nhưng nó đã không làm việc, vì vậy tôi quyết định viết một sự kiện click nhỏ đôi (dựa trên sự kiện nhấp chuột).

Nhược điểm là nó được đóng gói bên trong sự kiện 'nhấp', nhưng đó không phải là vấn đề lớn vì nó gọi một hàm riêng biệt.

Thứ nhất, xác định cài đặt:

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

Sau đó định nghĩa một hàm 'đôi reset nhấp chuột' trong trường hợp nhấn đúp chuột là không đủ nhanh và một nhấp chuột callback kép:

 // 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 
      } 
     }; 

và trong các cài đặt highcharts của biểu đồ:

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

    } 
    } 
}] 
Các vấn đề liên quan