En este proyecto viz de diseño de fuerza d3, estoy tratando de eliminar la capacidad del usuario para hacer clic en los nodos amarillos más grandes. Tengo un clic, activa la función clicknodeControl,
nodes.append('circle') .attr("r", 28) .attr("id", "hoverdots") .style("opacity", 0) .style("fill", "#00bedd") .on("click", function(d) { return clicknodeControl(d.group); }) .style("z-index", "10") .on("mouseover", mouseover) .on("mouseout", mouseout)
y luego, idealmente, esta variable pasaría a través de la función clicknode a un grupo de nodos pero no al otro:
var clicknodeControl = d3.scaleOrdinal([`clicknode`, ``]);
Esto no parece estar funcionando en la práctica, la función clicknode no se está pasando.
Gracias si alguien tiene alguna idea sobre esto!!
En D3 V7 , los controladores de eventos del mouse tienen el evento como primer argumento y el dato como segundo.
Reemplazar
.on("click", function(d) { return clicknodeControl(d.group); })
con:
.on("click", (_, d) => clicknodeControl(d.group))