3

attr選択に関する D3 の操作は、値を受け取るか、データが渡される関数を受け取るなど、用途が広い ( のように)。現在の選択に基づいていくつかのスタイル パラメータを設定したかったのです。

ドキュメントから:私が理解していることから、以下のシナリオが機能します

sel.style("stroke", "#000")
sel.style({"stroke": "#000", "stroke-width": "0.5"})
sel.style("stroke", function(d){return "#000"})

しかし、私が必要としているのは、fn によって返されたオブジェクトを取得することです。

var fn = function(d){
return {"stroke": "#000", "stroke-width": "0.5"}
}
sel.style( fn)

上記の例では、私は何もしませんが、私の場合、合格dに基づいて決定を下します。d

私は確かに、私は次のようなことができるかもしれません、

sel.style(`fill`, fillFn)
sel.style(`stroke`, strokeFn)

しかし、私は自分のコードを汎用的にしようとしているので、事前にどのスタイルを設定する必要があるのか​​ わからない場合があります.

編集:

私も試しましたselection.property、、

sel.property("style", fn);

しかし、エラーが発生しました

TypeError: Object [object Array] has no method 'property'

しかし、同じ選択で、もしそうなら

sel.style({"stroke": "#000", "stroke-width": "0.5"})

それは正常に動作します。何が間違っている可能性がありますか?

4

2 に答える 2