2011-12-30 2 views
1

同じデータを使用して、私の視覚化のいくつかの異なる部分を作成します。私は別の選択で対応するノードを変更する選択の1つのノードでmouseoverイベントを作成したいと思います。それを行うための慣用的なd3方法は何ですか? (私はidを使うことができる、あるいは選択範囲を入れ子にしたり、両方の選択肢の範囲内で地図に情報を格納することができます...しかし、これらはすべて私にとって面倒な戦略のようです)d3.jsでは、同じデータに対して複数の選択肢がある場合、対応するノードをどのように変更しますか?

補足として、一般的な作業を行う際に非常に役立つ良い「d3イディオム」参照。

答えて

1

選択は通常一時的です。ドキュメントから簡単に再選択できるのであれば、それらを守る必要はありません。だから、idで選択するのが合理的な選択肢です。

要素に一意のID(一般的に視覚化を作成するときに痛みがあることがあります)を与えたくない場合、別のオプションは、結合されたデータを介して関連要素への参照を格納することです。たとえば:

selection.each(function(d) { d.element = this; }) 

は今、同じデータdが他の要素にバインドされていると仮定して、あなたはd3.select(d.element)元の要素を選択することができます。 「要素」よりも具体的な名前を選択すると、参照している2つの要素(オリジナルで装飾的な要素)を明確にすることができます。

一方、異なる要素に異なるデータがある場合は、それらをリンクする別の方法が必要になります。 idや他の適切なセレクタを使用したくない場合は、参照のマップも妥当です。

関連する問題