2014-10-31 82 views
3

我似乎無法從圖表本身的單擊事件返回Highchart中獲取類別。換句話說,這工作得很好:點擊返回xAxis類別

plotOptions: { 
    series: { 
    events: { 
     click: function(ev) { 
     console.log(ev.point.category); // outputs category 
     } 
    } 
    } 
} 

不過,我想是能夠得到的類別,當用戶點擊任意位置在圖表上,不只是在點。這將是這個樣子

chart: { 
    events: { 
    click: function(ev) { 
     console.log(ev.xAxis[0].category); // undefined because doesn't exist - sure would be nice, tho 
    } 
    } 
} 

我已經通過這項活動和highcharts這裏對象,但沒有能夠找到如何識別哪個類別與返回的x值相關聯的梳理。

+1

我不明白你想要做什麼。當你點擊圖表上的某個地方時,你想獲得最近點的類別嗎? – SteveP 2014-10-31 09:29:07

+0

這絕對是一種想法。我更加抽象地考慮了x值可以直接映射到類別(例如1-100 = 1月,101-200 = 2月,201-300 = 3月),但這可能不是解決方案所在。 – dinocarl 2014-10-31 14:09:15

回答

0

您可以獲取位置x值並映射到類別。例如:

click:function(e){ 
       alert('x: ' + categories[Math.floor(e.xAxis[0].value)]); 
} 

http://jsfiddle.net/pev5zos8/

+1

謝謝你,塞巴斯蒂安!看起來答案只需要稍作修改 - 如果將「floor」更改爲「round」,它將返回正確的值。使用'floor',它將返回兩點之間的類別,這意味着當您單擊例如「Feb」的左側時,它將返回「Jan」,並且當您單擊「 Jan「它會返回」未定義「。 – dinocarl 2014-11-03 17:42:45

+1

使用'round'的小提琴:http://jsfiddle.net/0qaousyj/ – dinocarl 2014-11-03 21:19:47

+0

全部取決於您;)的確圓形更好。 – 2014-11-04 10:33:45