2014-07-02 36 views
2

我有一個餅圖,其中一個點有向下鑽取,其他點沒有。當我使用plotOptions.series.point.events.click檢測到一個點擊並嘗試返回點擊點的名稱時,它適用於除了鑽取點之外的每個點。當點鑽取時,獲取高點圖中點擊點的名稱

如果我做的:

plotOptions: { 
    series: { 
    point: { 
     events: { 
     click: function(e) { 
      console.log(this.name); 
     } 
     } 
    } 
    } 
} 

然後適當的名稱將顯示爲除了一個帶鑽,這將返回一個空點的每一個點。這可能是因爲圖形首先通過鑽取進行更新,並且發生事件回調時該點不再存在。我該如何做到這一點,以便點擊時正常點和鑽取點都能正確返回?

我加了的jsfiddle來說明我的觀點: http://jsfiddle.net/Pq6gb/2/ 我只是把從Highcharts演示頁餅鑽取例子,說得那麼Firefox不具有下鑽。請注意,在瀏覽器的控制檯中,當我點擊Firefox時,會顯示名稱。當我點擊其他切片時,顯示的名稱爲空。

+0

請創建代碼 –

+0

的小提琴的jsfiddle添加到我原來的問題。 – user3758133

+0

解釋說明:它是在'point.click'之前調用'drilldown'事件引起的 - 在'drilldown'事件中,點擊點被銷燬。我會首先看到爲什麼我們稱之爲「鑽取」,然後是「點擊」事件。 –

回答

4

雖然並不理想,這將給你一些事件進行定期和深入分析:

chart: { 
    ..., 
    events: { 
     drilldown: function (e) { 
      console.log(e.point); // The point, with name, that was clicked 
     } 
    } 
} 

隨着自己的代碼,這將觸發定期點一個事件(你自己的代碼),並深入分析兩個事件點。然後,您可以檢查series.point.events.click中的name == null,並忽略它,並在chart.events.drilldownAPI reference)中處理它。