我正在尝试创建一个可折叠的树,其中包含用于展开当前节点的链接(而不是使用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>"});
答案 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