क्लिक घटना सुनने पर उच्च चार्ट

मैं अपने उच्च चार्ट ऑब्जेक्ट को एक json_encoded सरणी से युक्त div पर डेटा आईडी से पास कर रहा हूं।

$('div.filter_pie_chart').each(function( index ) {
    $(this).highcharts($(this).data("params"));
    });

मैं निम्नलिखित नोटेशन का उपयोग कर एक पाई चार्ट की क्लिक घटनाओं को सुनना चाहता हूं। क्या यह संभव है?

$(document).on('click','.high_chart_point_object', function (event) {
       return false;
});
0

2 उत्तर

मुझे लगता है कि यह दस्तावेज़ लिंक है जो आपको चाहिए।

यहां एक JsFiddle

$(function() {
   //create the chart
    var mychart = $('#container').highcharts({
        chart: {
            events: {
                click: function(event) {
                    alert ('x: '+ event.xAxis[0].value +', y: '+
                          event.yAxis[0].value);
                }
            }        
        },
        xAxis: {
        },

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

और मुझे लगता है कि इन लाइनों को भी काम करना चाहिए (परीक्षण नहीं किया गया है, लेकिन यह आपके नोटेशन के समान है):

$('.high_chart_point_object').highcharts({
  chart: {
    events: {
      click: function(event) {
        return false;
      }
    }        
  }
});

यदि आप गतिशील रूप से विकल्पों को बदलना चाहते हैं, तो यहां समाधान है:

var options = mychart.options;
options.chart.events.click = function() {alert('do what you want')};
mychart = new Highcharts.Chart(options);

यहां एक और JsFiddle है।

0
जोड़ा
मैं उच्च चार्ट ऑब्जेक्ट बनाने के बाद इवेंट हैंडलर जोड़ना चाहता हूं। आपका उदाहरण उन्हें एक ही समय में पास करता है।
जोड़ा लेखक Jonathan Graham, स्रोत
मेरा आवेदन उपयोगकर्ता को सृजन के बाद कार्यक्षमता का विस्तार करने की अनुमति देता है। तो मैं नंगे हड्डियों के ग्राफ बनाते हैं और फिर ग्राफ को बढ़ाने के लिए उन्हें सीएसएस या jQuery में प्रवेश करने की क्षमता देते हैं। आपका समाधान विकल्पों को बदलने के लिए jQuery का उपयोग नहीं करता है।
जोड़ा लेखक Jonathan Graham, स्रोत
आपको अपना समाधान मिला है। ;) लेकिन अगली बार आप जो चाहते हैं उसे समझाएं। यदि आपकी सूचनाएं खराब हैं तो हम आपकी मदद नहीं कर सकते हैं। और मैं वास्तव में समझ में नहीं आता कि आप चार्ट बनाने वाले ईवेंट हैंडलर को क्यों जोड़ना चाहते हैं ... ??
जोड़ा लेखक kmas, स्रोत
मैं वास्तव में समझ में नहीं आता कि आप क्या चाहते हैं। मुझे लगता है कि आपके पास मेरी पोस्ट में जो कुछ भी चाहिए, वह अलविदा है! ;)
जोड़ा लेखक kmas, स्रोत

हां, यह तीन तरीकों से संभव होना चाहिए:

  • one is to use plotOpttions.pie.point.events.click ant there call function you need to. Reference.
  • another one is to Element.on() function from Highcharts after digging for DOM elements - it's the same as using $().on(), reference.
  • if you really need that $().on(), you can use is on point.element, sample for you: http://jsfiddle.net/UWZAe/

और तीसरे मामले के लिए कोड:

    chart: {
        events: {
            load: function() {
                var chart = this,
                    pie = chart.series[0],
                    pieData = pie.data,
                    dLen = pieData.length;

                for(var i = 0; i < dLen; i++){
                    var slice = pieData[i];

                    console.log(slice, $(slice.graphic)); 
                }  
            }
        }
    }
0
जोड़ा