d3.js强制有向图中的链接
问题描述:
在this example中,如何让每个节点的文本成为可点击的链接?d3.js强制有向图中的链接
我想类似这样的代码的东西,但值不点击:
var links = text.append("a").attr("xlink:href", "http://www.google.com/");
// A copy of the text with a thick white stroke for legibility.
links.append("svg:text")
.attr("x", 8)
.attr("y", ".31em")
.attr("class", "shadow")
.text(function(d) { return d.name; });
links.append("svg:text")
.attr("x", 8)
.attr("y", ".31em")
.text(function(d) { return d.name; });
编辑/解决方案:原来的CSS有这个attriubte:指针的事件:无; 我不得不删除它,然后按照以利亚的建议使用它。
答
不要使用链接,将其放置并直接附加到您的文本<g>
,它应该工作。
text.append("svg:text")
.attr("x", 8)
.attr("y", ".31em")
.attr("class", "shadow")
.text(function(d) { return d.name; })
.on("click", function() {yourFunction(yourVar)})
.on("mouseover", function() {yourFunction2(yourVar)})
.on("mouseout", function() {yourFunction3(yourVar)})
;
另外,如果你想通过绑定的数据,你会是这样做的:
.on("click", function(d) {yourFunction(d.yourVar)}
而如果你想通过实际d对象,你可以像下面这样做:
.on("click", yourFunction}
在这种情况下,yourFunction(d,i)然后可以从绑定数据中引用d.whatever。
谢谢,但我不能得到它的工作。这里是我使用的代码https://gist.github.com/3784067,这里是活动页面http://bl.ocks.org/3784067 –
等等,迈克的原始要义从未附上元素,它附加了元件。如果你保持该模式,并不尝试使用href模式,那么它应该工作。我会调整我的答案,让我知道如果这有效。 –
Elijah
仍然不起作用。我只是将2行事件附件添加到原始代码中。要点/演示:https://gist.github.com/3785177 http://bl.ocks.org/3785177 –