ノードでダブルクリックイベントを作成したい。だから私は試した
.on("dbclick",function(d){return "http://google.com");});
そして
.bind({"dbclick",function(d){alert("hello")} });
しかし、すべてが失敗しました。誰も私を助けることができますか?
完全なコードは次のとおりです。
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")} });
最後に、以下の方法を使用しました。 (dblclickも機能します)
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";;})
「dbclick」の代わりに「dblclick」を使用できます。
nodes.on("dblclick",function(d){ alert("node was double clicked"); });
D3 Observableを使用する場合:
const nodeEnter = node.enter().append("g")
.on("dblclick", d => {
d3.event.preventDefault();
// do your thing
});