2013-01-04 1 views
5

私の機能にはいくつかの変数があります。js変数がd3選択項目であるかどうかをチェックしますか?

最初のものがd3の選択であればそれを使用します。それ以外の場合はデフォルトの選択を使用します。

変数がd3選択であるかどうかを確認するにはどうすればよいですか?変数selがd3.selectionある場合

+1

通常、人々はこれにducktypingを使用します。私。変数に必要なプロパティがあるかどうかを確認し、特定のプロパティがある場合は、探しているオブジェクトと見なします。 – ThiefMaster

+0

実際の再バインド方法は抽象です。なぜなら、そのコードを何度も何度も繰り返したくないからです(関数を返す関数の1つ)。私は現在 'd3SelectorOrNot.selectAll'をチェックしていますが、それはむしろジンピーです。他のほとんどのライブラリは 'isMyLibraryObject()'関数を提供しています。私はd3もそうだと思っています、私はそれを見つけることができません。 –

答えて

1

ドキュメントで提供されて(sel instanceof d3.selection)については、上記参照の答えは、ことに注意してください。

これは、ここで説明されていますhttps://github.com/mbostock/d3/issues/851

それはIE9での問題であり、D3に固定されることはありません。回避策はこのコミットにあります。https://github.com/palantir/plottable/pull/637

(typeof sel[0] !== "string")を代わりに使用してください。これは明らかではありませんが、IE9をサポートする必要があるかどうかによって異なります。

関連する問題