2011-11-24 75 views
3

我希望能夠將事件綁定到高圖表中的座標軸,所以我可以在UI中公開一些選項(軸間隔,文本格式,網格線等)在高圖軸上的點擊事件

似乎不是在高層圖中做到這一點的一種方法。到目前爲止,當我點擊標籤時,我可以使用它來完成我的出價,但是當我單擊標籤之間的空格時,我不能。看到小提琴這裏,對於2.2.4版本:http://jsfiddle.net/gW4p6/174/

var chart = new Highcharts.Chart({ 
    chart: { 
     renderTo: 'container', 
     marginRight: 80 // like left 
    }, 
    xAxis: { 
     categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 
    }, 
    yAxis: [{ 
      lineWidth: 1, 
      title: { 
       text: 'Secondary Axis' 
      } 
    }], 

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

var clearSelection = function() { $('.highcharts-axis').css('stroke', ''); }; 

$('.highcharts-axis').click(function(event) { 
    clearSelection(); 
    $(this).css('stroke', 'green'); 
    return false; 
}); 
$(document).click(clearSelection); 
$('svg').click(clearSelection); 

有什麼辦法,我可以可靠漁獲g.highcharts軸元素上的click事件?

對於獎勵標記,在選項中鏈接軸與其axis.id的最佳方式是什麼?我能想到的最好的方法是依靠軸按照它們提供的順序渲染的事實,所以我可以循環。

+0

昨天我爲此工作了幾分鐘。我認爲這與指針事件屬性(http://www.w3.org/TR/SVG/interact.html#PointerEventsProperty)有關。 svg g元素不是「繪製」元素,所以點擊事件基於它的子元素。我試圖將該屬性設置爲「全部」,但這也不起作用。該死,這很棘手。 – Mark

回答

5
$('.highcharts-axis text').click(function(){ alert($(this).text()); }); 

這提醒軸的文本。這樣你可以將click事件綁定到axis中的每個元素。

+0

我已經有了類似的解決方案 - 你看到小提琴嗎?我希望能夠點擊標籤之間的空格。 – XwipeoutX

+0

不幸的是,這不適用於餅圖。 – OMA

+0

有誰知道這個解決方案是否仍然有效?原來問題中的jsFiddle似乎不再工作了,我無法得到可接受的解決方案在我的機器上工作 - 事件似乎根本沒有約束力,就好像沒有階級一樣.highcharts軸文字'...謝謝! – user

-1

您可以使用單擊事件。看看的API: http://api.highcharts.com/highcharts#series.data.events.click

從事件處理程序,你可以用「this.name」 甚至串獲得某種標識與「this.options.somevariable」

「somevariable 「表示您在系列數據中創建的任何變量名稱。例如,在我的情況下,我將標識符簡稱爲「id」:

{ 
    name: "My label", 
    id: 6, 
    events: { 
     click: function() 
     { 
     alert(
      'The name is ' + this.name + 
      ' and the identifier is ' + this.options.id 
     ); 
     } 
    } 
} 
+2

問題是關於軸,而不是系列或者數據點。 – PeerBr

相關問題