1

コード内の jQuery の最後の部分は次のとおりです。このように、すべてが機能します。

var colourchange = function () {
  var my_selection = d3.select(this);
  var selection_class = my_selection.attr("class");

  $("." + selection_class)
    .css("fill", "yellow");
};

jQueryライブラリを回避するために(この行だけです!)コードで置き換えようとしていd3.jsます-とにかくコードの主要部分です。これが私が持っているものです:

var colourchange = function () {
  var my_selection = d3.select(this);
  var selection_class = my_selection.attr("class");

  d3.selectAll("." + selection_class)
    .attr("fill", "yellow");
};

しかし、それはうまくいきません。非常に明白な何かが欠けていると確信しています。

編集:この関数を呼び出す方法について言及する必要があるかもしれません...

<d3 - selection>
    .data(my_data)
    .enter().append("rect")
    .attr(...) etc.
    .on("mouseover", colourchange)

関数の効果は、マウスが置かれている要素と、同じクラスの他の要素に適用する必要があります。

4

1 に答える 1

1

私はに変更.attr("fill", "yellow")します.style("fill", "yellow")

.attr()を使用すると、<rect fill="yellow" ...>代わりに<rect style="fill: yellow;" ...>問題が発生する可能性があります。

于 2013-03-10T18:02:23.190 に答える