2014-06-17 11 views
5

उच्च चार्टों में डबल क्लिक ईवेंट है?हाइचार्ट्स - डबल क्लिक इवेंट

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

संभावित डुप्लिकेट [एच में अंकों पर डबल क्लिक या लंबे क्लिक का पता लगाने के लिए कैसे ighcharts चार्ट?] (http://stackoverflow.com/questions/18403261/how-to-detect-double-clicks-or-long-clicks-on-points-in-highcharts-charts) –

उत्तर

1

मैं एक्सटेंशन का उपयोग कर की कोशिश की, लेकिन यह काम नहीं किया है, इसलिए मैं (क्लिक करें घटना के आधार पर) एक छोटे से डबल क्लिक करें घटना लिखने का फैसला किया।

नकारात्मकता यह है कि यह 'क्लिक' ईवेंट के अंदर encapsulated है, लेकिन यह एक बड़ा मुद्दा नहीं है क्योंकि यह एक अलग समारोह कहते हैं।

पहले, सेटिंग निर्धारित करें:

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

    } 
    } 
}] 
संबंधित मुद्दे