Je veux faire un double clic sur les nœuds. J'ai donc essayé
.on("dbclick",function(d){return "http://google.com");});
et
.bind({"dbclick",function(d){alert("hello")} });
Mais tout a échoué. Quelqu'un peut-il m'aider?
Les codes complets sont ci-dessous.
var node = svg.selectAll(".node")
.data(graph.nodes)
.enter().append("g")
.attr("class", "node")
//.on("dbclick",function(d){return "http://google.com");});
//.attr("xlink:href", function(d){return d.url;}
.call(force.drag);
//.bind({"dbclick",function(d){alert("hello")} });
Enfin, j'ai utilisé une méthode ci-dessous. (dblclick fonctionne également)
var node = svg.selectAll(".node") .data(graph.nodes) .enter().append("a")
.attr("class", "node") .attr("target", "_blank")
.attr("xlink:href", function(d){return "google.com";;})
Vous pouvez utiliser "dblclick" au lieu de "dbclick":
nodes.on("dblclick",function(d){ alert("node was double clicked"); });
Si vous utilisez D3 observable:
const nodeEnter = node.enter().append("g")
.on("dblclick", d => {
d3.event.preventDefault();
// do your thing
});