1

簡単な質問がありますが、残念ながら私は何か間違ったことをしていると思います。

複数の独立したチャートを生成するページがあります。ラジオ ボタン セットに依存するこのチャートごとにイベント リスナーを追加したいと思います。たとえば、ラジオ ボタン [A、B、C] に 3 つのオプションがあり、どのボタンが選択されているかによって、チャートは異なる変数を視覚化する必要があるとします。各グラフは、AJAX 呼び出しを使用して非同期的に生成され、再利用可能なグラフとして構造化されています (ここで説明されているように: http://bost.ocks.org/mike/chart/ ) 。

現時点で行ったことは、これらのチャートが次のように独自のイベント リスナーを作成することです。

d3.selectAll(".global-control").on("change.pie", readjustPie);

d3.selectAll(".global-control").on("change.scatter", readjustScatter);

readjustPie と readjustScatter はどちらも、異なる「再利用可能なグラフ」の関数です (例: pieChart() と ScatterChart())。

明らかに、最新のコードが実行されると、1 つのリスナーが上書きされます (グラフは非同期で生成されます)。私がやりたいのは、各関数にイベントリスナーを追加する代わりに、リスナーを追加できるようにすることです。私はのオプションを試しました

d3.selectAll(".global-control")
.on("change.pie", readjustPie)
.on("change.scatter", readjustScatter);

しかし、関数 (readjust*) が見つからないため機能しません (明らかに、それらはグローバル関数ではありません)。

そのようなイベント追加は可能ですか?

質問がばかげている場合は申し訳ありませんが、助けていただければ幸いです。

最高、ニコス

4

1 に答える 1