d3js: как переключать класс css после нажатия на элемент
У меня есть тепловая карта, построенная в точности как в этом примере с d3js http://bl.ocks.org/tjdecke/5558084.
Как мне изменить код таким образом, чтобы при нажатии на квадрат он включал / выключал определенный класс CSS для этого квадрата?
1 ответ
Решение
Все очень просто - измените код следующим образом:
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);
});