私の機能にはいくつかの変数があります。js変数がd3選択項目であるかどうかをチェックしますか?
最初のものがd3の選択であればそれを使用します。それ以外の場合はデフォルトの選択を使用します。
変数がd3選択であるかどうかを確認するにはどうすればよいですか?変数sel
がd3.selectionある場合
私の機能にはいくつかの変数があります。js変数がd3選択項目であるかどうかをチェックしますか?
最初のものがd3の選択であればそれを使用します。それ以外の場合はデフォルトの選択を使用します。
変数がd3選択であるかどうかを確認するにはどうすればよいですか?変数sel
がd3.selectionある場合
確認するには:https://github.com/mbostock/d3/wiki/Selections#d3_selection、IE9では動作しません。
var isselection = sel instanceof d3.selection;
ドキュメントで提供されて(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をサポートする必要があるかどうかによって異なります。
通常、人々はこれにducktypingを使用します。私。変数に必要なプロパティがあるかどうかを確認し、特定のプロパティがある場合は、探しているオブジェクトと見なします。 – ThiefMaster
実際の再バインド方法は抽象です。なぜなら、そのコードを何度も何度も繰り返したくないからです(関数を返す関数の1つ)。私は現在 'd3SelectorOrNot.selectAll'をチェックしていますが、それはむしろジンピーです。他のほとんどのライブラリは 'isMyLibraryObject()'関数を提供しています。私はd3もそうだと思っています、私はそれを見つけることができません。 –