6

マルチバー チャートに nvd3 を使用しています。ユーザーがページ上の他の HTML をクリックしたときにチャートを再描画したいと考えています。jQuery を使用して、nvd3 ホームページ ( http://nvd3.org/ ) で "Stream0" 凡例の円を選択し、コンソールで次のスニペットを使用してクリックしてみました。

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

JavaScript に詳しい人にはすぐにわかると思いますが、何も起こりません。イベント委任と関係がありますか?

http://nvd3.org/

4

2 に答える 2

10

あなたはこれを試すことができます:

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

独自のメソッドを凡例に追加します。円グラフで機能しますが、折れ線グラフで機能するかどうかはわかりません。

于 2013-10-10T06:40:40.347 に答える
2

たぶん、これにはいくつかの助けがあります。2 つのグラフ、1 つの円グラフ、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 があることに注意してください。縮小されていない nvd3 js ファイルを確認することをお勧めします。

于 2014-10-23T13:49:03.603 に答える