这是代码中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)
该函数的效果应该应用于鼠标悬停的元素和具有相同类的其他元素。
答案 0 :(得分:1)
我会将.attr("fill", "yellow")
更改为.style("fill", "yellow")
使用.attr()会导致<rect fill="yellow" ...>
而不是<rect style="fill: yellow;" ...>
,这可能会导致您的问题。