2013-07-03 6 views
8

मैं उसी घटना को आग लगाना चाहता हूं जब आप आइटम लीजेंड चुनते हैं लेकिन बाहरी एचटीएमएल बटन से निकालते हैं। क्या यह संभव है?हाइचार्ट्स - फायर लेजेंडइटम क्लाइक इवेंट

मैंने इसे दिखाने के लिए एक jsfiddle बनाया है: http://jsfiddle.net/YcJF8/1/

$('#container').highcharts({ 
        chart : { 
         type : 'spline', 
        }, 

        xAxis : { 
         categories : ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
        }, 

        series : [{ 
         data : [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4], 

        }], 

        plotOptions : { 
         series : { 

         cursor : 'pointer', 
        } 
       }, 
}); 

$('#button').click(function() { 
     alert("Fire legenditemclick event"); 
}); 

इस jsfiddle में, मैं एक बटन है और मैं चाहता हूँ कि जब मैं बटन यह एक घटना या कुछ और है कि आइटम कथा की तरह पहचान लेता है तथा कृत्यों चार्ट (श्रृंखला 1) क्लिक किया गया था आग पर क्लिक करें।

आपको बहुत बहुत

उत्तर

7

बस का उपयोग धन्यवाद:

$($('.highcharts-legend-item')[0]).click() 

कहाँ 0 श्रृंखला के सूचकांक आप 'क्लिक' करना चाहते हैं।

अद्यतन fiddle

संपादन

  • highcharts-legend-item कथा में प्रत्येक प्रविष्टि के वर्ग है। मैंने क्रोम डेवलपर टूल का उपयोग करके पौराणिक कथाओं की जांच करके इसकी खोज की।
  • $('.highcharts-legend-item') उस वर्ग के सभी तत्वों की एक सरणी वापस करने के लिए एक jquery चयनकर्ता है। http://api.jquery.com/click/
+0

धन्यवाद, यह सही है। जिज्ञासा से बाहर, क्या आप मुझे समझा सकते हैं कि आपको कक्षा हाईचार्ट्स-किंवदंती-वस्तु और रेखा के प्रत्येक तत्व का अर्थ कहां मिला? आपका बहुत बहुत धन्यवाद! –

+1

@ एविला, संपादन देखें। – Mark

+0

बहुत बहुत धन्यवाद !! –

2

मुझे लगता है कि

$('.highcharts-legend-item')[0]) 

पर क्लिक परिभाषित करने के साथ जवाब है: मैं सूचकांक द्वारा पहले एक और $() यह एक jQuery वस्तु

  • .click में परिवर्तित करने के लिए चयन यह है सबसे अच्छा नहीं है। यह बहुत महंगा है क्योंकि डोम शायद भारी है। मेरा समाधान आमतौर पर सीएसएस पर आधारित है। आप कस्टम तत्वों के ऊपर हाईचार्ट किंवदंती वस्तुओं की स्थिति सेट कर सकते हैं जिन्हें आप उपयोग करना चाहते हैं और प्रत्येक आइटम में कस्टम HTML तत्व के समान ऊंचाई & ऊंचाई होनी चाहिए। हाईचार्ट तत्वों में अस्पष्टता मान 0 होना चाहिए ताकि वे दिखाई न दें। तो जब आप अपने तत्व पर क्लिक करते हैं, वास्तव में, आप हाईचार्ट किंवदंती आइटम पर क्लिक कर रहे हैं। यदि आप अपने कस्टम तत्व के लिए कुछ सीएसएस सेट करना चाहते हैं तो आपको legendItem को कॉलबैक पर कॉल करना चाहिए:

    plotOptions: { 
        series: { 
         events: { 
          legendItemClick: function() { 
           var legenedItemIndex = this.index // index of highchart legend item 
           $("your html element:eq(" + legenedItemIndex + ")") //do something with your element 
          } 
         } 
        } 
    } 
    
  • संबंधित मुद्दे