d3js:点击了元素后如何切换css类

Ask*_*mov 2 javascript d3.js

我有一张热图,与d3js示例http://bl.ocks.org/tjdecke/5558084完全相同.

如何修改代码,如果我单击一个正方形,它会打开/关闭该正方形的特定CSS类?

Lar*_*off 13

非常简单 - 因此更改代码:

var heatMap = svg.selectAll(".hour")
          .data(data)
          .enter().append("rect")
          .attr("x", function(d) { return (d.hour - 1) * gridSize; })
          .attr("y", function(d) { return (d.day - 1) * gridSize; })
          .attr("rx", 4)
          .attr("ry", 4)
          .attr("class", "hour bordered")
          .attr("width", gridSize)
          .attr("height", gridSize)
          .style("fill", colors[0])
          .on("click", function() {
            d3.select(this).classed("myCssClass", d3.select(this).classed("myCssClass") ? false : true);
          });
Run Code Online (Sandbox Code Playgroud)

  • 点击功能更短:`d3.select(this).classed("myCssClass",!d3.select(this).classed("myCssClass")) (2认同)