2013-08-29 100 views
4

我使用nvd3作爲多條形圖表,並且我希望在用戶單擊頁面上的其他html時重繪圖表。我試圖使用jQuery選擇在nvd3主頁(http://nvd3.org/)的「Stream0」傳說圈,雙擊它,在控制檯中使用這個片段:使用jquery在nvd3中觸發圖例點擊事件?

$($('g.nv-series')[0]).click() 

對於希望將立即人們更瞭解顯而易見的原因JavaScript,沒有任何反應。這與事件授權有關嗎?

http://nvd3.org/

+1

[This question](http://stackoverflow.com/questions/9063383/how-to-invoke -click-event-programmaticaly-in-d3)應該有所幫助。 –

回答

6

你可以試試這個:

chart.legend.dispatch.legendClick = function(d, i){ 
//redraw 
}; 

將自己的方法追加到傳奇;它適用於餅圖不確定是否適用於折線圖;

+1

此代碼在用戶單擊圖例時運行,但尚不清楚它如何觸發單擊事件。 – axiomx11

1

也許這裏有一些幫助。兩個圖表,一個餡餅,一個堆疊,但只顯示餅圖的傳說。 數據不相同,但傳說是.. 想單擊餅圖傳說更新。

 chart.legend.dispatch.on('stateChange.pie', function(d,i){ 
      setTimeout(function() { 
       stackedAreaChart.dispatch.changeState(d,i); 
       stackedAreaChart.update(); 
      }, 100); 
     }); 

注意:使用「.pie」將延長(庫)stateChange事件(未覆蓋它) 另一圖表stackedAreaChart必須處於範圍。 請注意有一個changeState事件和一個stateChange,最好是看un-minified的nvd3 js文件..