Me gustaría modificar el estado de un nodo de textocuando se hace clic en él, pero aparentemente no logro acceder a él correctamente. Cuando hago clic, no pasa nada (a menos que use el selector jquery, y no todos los comandos funcionan). Entonces mi pregunta es: ¿cuál es el equivalente de d3.js a $ (esto)?
var buttons = svg.selectAll(".button");
buttons.on("click",function(d){
var target = $(this).attr("target");
var visible = $(this).attr("visible");
if(visible==="1"){
svg.selectAll(".bar."+target)
.transition()
.duration(500)
.ease("elastic")
.style("display","none");
$(this).attr("visible","0")
.style("text-decoration","line-through");
}else{
svg.selectAll(".bar."+target)
.transition()
.duration(500)
.ease("elastic")
.style("display","inline");
$(this).attr("visible","1");
$(this).removeClass("active");
}
});
Respuestas
0 para la respuesta № 1Resulta d3.select(this)
es la respuesta correcta
El código ahora es:
var buttons = svg.selectAll(".button");
buttons.on("click",function(d){
var target = $(this).attr("target");
var visible = $(this).attr("visible");
if(visible==="1"){
svg.selectAll(".bar."+target).transition().duration(500).ease("elastic").style("display","none");
d3.select(this).attr("visible","0").style("text-decoration","line-through");
}else{
svg.selectAll(".bar."+target).transition().duration(500).ease("elastic").style("display","inline");
d3.select(this).attr("visible","1").style("text-decoration","");
}
});