在节点内部链接以扩展它

时间:2014-07-22 12:04:21

标签: d3.js

我正在尝试创建一个可折叠的树,其中包含用于展开当前节点的链接(而不是使用on。(“click”,clicked)方法单击节点)。这是jsfiddle

nodeEnter.append("foreignObject")
.attr("width", rectW)
.attr("height", rectH)
.append("xhtml:body")
.style("font", "14px 'Helvetica Neue'")
.html(function (d) { return "<a href='#' onclick=\x22clicked(" + source + ")\x22>"+d.name+"</a>"});

1 个答案:

答案 0 :(得分:1)

问题是您的source变量转换为字符串,因此您实际上并未将对象传递给clicked函数;

你可以重写这个来附加这样的链接:

nodeEnter.append("foreignObject")
.attr("width", rectW)
.attr("height", rectH)
.append("xhtml:body")
.style("font", "14px 'Helvetica Neue'") 
.append("a").html(function(d){return d.name;})
.attr('href', '#')
.on('click', function(){
    clicked(source);
    });

请参阅更新的fiddle

要使其适用于单击的节点(而不是始终是父节点),您可以通过单击的函数参数替换source

.on('click', function(d){
    clicked(d);
    });

另一个更新的fiddle