2013-11-25 34 views
1

我從包含div上的數據ID傳入的json_encoded數組創建我的高圖表對象。單擊事件監聽時的高圖表

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

我想傾聽使用下列符號的餅圖的點擊事件。這可能嗎?

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

回答

1

我覺得這個documentation link是你需要的。

這是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

我想創建後添加的事件處理程序高圖表對象。你的例子在同一時間通過它們。 –

+0

你有你的解決方案。 ;)但更多的解釋下一次你想要的。如果您的信息很差,我們無法幫助您。我不明白爲什麼要添加創建圖表的事件處理程序......? – kmas

+0

我的應用程序允許用戶在創建後擴展功能。所以我創建了裸骨圖,然後給他們輸入CSS或jQuery來增強圖形的能力。您的解決方案不使用jQuery來更改選項。 –

1

是的,這應該有可能在三個方面:

  • 一種是使用plotOpttions.pie.point.events.click螞蟻有打電話給你需要的功能。 Reference
  • 另一個是在挖掘DOM元素之後從Highcharts開始的Element.on()函數 - 它與使用$().on(),reference相同。
  • 如果你真的很需要那$().on(),您可以使用上point.element,爲您的樣品: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)); 
       } 
      } 
     } 
    }