【发布时间】:2017-03-10 04:03:32
【问题描述】:
我对网络编程很陌生,它或多或少就像搜索一个函数并尝试直到工作正常为止。所以你知道我的技能了;)
我正在尝试构建 d3 可视化(在 Mike Bostocks dendrogramm 之后:http://bl.ocks.org/mbostock/4063570)。 在树中,我想使用指向使用灯箱脚本(fancyBox:http://fancyapps.com/fancybox/)的隐藏 div(id='test')的内部链接。
到目前为止,我的 d3 脚本为链接生成了以下代码(从 firebug 复制):
<a class="fancybox" x="10" href="#test"><text class="nodeText" dy=".35em" text-anchor="start" style="fill-opacity: 1;" x="10"test</text>
当我在其他任何地方(甚至在 d3-div 中)使用此代码时,它可以正常打开灯箱 div。但是当我在 d3 画布中单击它时,它不起作用。
设置节点及其属性的代码(创建上面的代码)如下:
nodeEnter.append("svg:a")
.attr("x", function(d) {
return d.children || d._children ? -10 : 10;
})
.attr("xlink:href", function(d){return d.url;}) // <-- reading the new "url" property
.attr('class', 'fancybox')
.append("text")
.attr("dy", ".35em")
.attr('class', 'nodeText')
.attr("text-anchor", function(d) {
return d.children || d._children ? "end" : "start";
})
.text(function(d) {
return d.name;
})
.style("fill-opacity", 0);
此外,当我设置外部 url 时,它也可以正常工作。但是当 url 是 '#test' 时它不会。
我找不到任何关于此类问题的文章(也许我有特殊的需求?O.o)。还有其他方法来设置内部链接还是我错过了任何迹象?我想知道为什么这在 d3 之外有效,但在内部无效。
感谢您的帮助!
【问题讨论】:
标签: d3.js hyperlink fancybox lightbox internal