Javascript d3.js强制有向图中的链接
在中,如何使每个节点的文本成为可单击的链接 我尝试了类似于此代码的操作,但无法单击值:Javascript d3.js强制有向图中的链接,javascript,svg,append,hyperlink,d3.js,Javascript,Svg,Append,Hyperlink,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")
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有这样一个属性:指针事件:无;
我必须删除它,然后按照以利亚的建议使用。不要使用链接,删除它并直接附加到你的文本
,它应该会起作用
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)}
.on("click", yourFunction}
然而,如果您想要传递实际的d对象,您可以这样做:
.on("click", function(d) {yourFunction(d.yourVar)}
.on("click", yourFunction}
在这种情况下,您的函数(d,i)就可以引用绑定数据中的d.。谢谢,但我无法让它工作。这是我使用的代码,这是实时页面等待,Mike的原始要点从未附加元素,它附加了元素。如果您保持该模式,并且不尝试使用a href模式,那么它应该可以工作。我会调整我的答案,让我知道这是否有效。仍然无效。我刚刚在原始代码中添加了两行事件附件。要点/演示: