8
A
回答
5
我是一个Javascript/SVG/d3js小白,但我通过放置一个超链接的透明矩形在文本上“解决”这个,这个解决方法是可以作为bl.ock:
nodeEnter
.append("a")
.attr("xlink:href", function (d) { return "http://www.example.com/flare/" + d.id; })
.append("rect")
.attr("class", "clickable")
.attr("y", -6)
.attr("x", function (d) { return d.children || d._children ? -60 : 10; })
.attr("width", 50) //2*4.5)
.attr("height", 12)
.style("fill", "lightsteelblue")
.style("fill-opacity", .3) // set to 1e-6 to make transparent
;
我增加了一个额外的clickable
style和add .on("click", click)
to the circle而不是组(g
)元素。
这可行,但缺点是可点击矩形的大小不与标签的文本大小。
我真的很期待更好的解决方案,所以+1为您的问题!
0
我加了文字的另一行到节点有关的链接的一些信息,比如:
nodeEnter.append("a")
.attr("xlink:href", function(d) { return d.path; })
.append("text")
.attr("class", "clickable")
.attr("y", 16)
.attr("x", function (d) { return d.children || d._children ? -10 : 10; })
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.label; })
其中,路径和标签都希望为每个节点的数据。
4
如果您删除全局节点上单击处理和连接2个不同的点击处理程序:
- 一为圆
- 一个文本
你可以有不同的行为点击文字时。如果您对该元素进行了一些样式化,它可以看起来完全像超链接。
这里看看我的小提琴: http://jsfiddle.net/empie/EX83X/
单击处理
var nodeEnter = node.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; });
nodeEnter.append("circle")
.attr("r", 1e-6)
.style("fill", function(d) { return d._children ? "lightsteelblue" : "#fff"; }).on("click", click);;
nodeEnter.append("text")
.attr("x", function(d) { return d.children || d._children ? -10 : 10; })
.attr("dy", ".35em")
.attr("text-anchor", function(d) { return d.children || d._children ? "end" : "start"; })
.text(function(d) { return d.name; })
.style("fill-opacity", 1e-6)
.attr("class", "hyper").on("click", clack);
function clack(d) {
alert(d.name);
}
和CSS:
.hyper {
color: blue;
text-decoration: underline;
}
.hyper:hover {
color: yellow;
text-decoration: none;
}
相关问题
- 1. 将文本添加到可折叠D3树链接
- 2. 无法在d3可折叠树中的链接上添加文本
- 3. D3.js可折叠树 - 展开/折叠中间节点
- 4. 按照主题添加iFrame到D3折叠树插件上的每个节点
- 5. 分配HTML链接树节点文本
- 6. 可折叠的树
- 7. 如何将超链接添加到树的特定节点中ext js
- 8. d3.js如何使所有节点折叠在可折叠的缩进树
- 9. 将文本链接添加到电子邮件的超链接
- 10. 可折叠和树
- 11. 添加链接可折叠列表的头在jQuery Mobile的
- 12. 将节点添加到树
- 13. 添加链接到D3中的节点
- 14. 可折叠的容器/柱子。添加多个链接
- 15. D3js可折叠树减少节点之间的长度
- 16. 确定可折叠树中的某个节点是否隐藏
- 17. D3 v4使用d3链接生成器的可折叠树
- 18. .Net可折叠面板或可折叠链接控件
- 19. D3可折叠树不同节点颜色
- 20. D3.js可折叠树 - 不仅显示节点名称
- 21. 在php中添加超文本链接
- 22. D3 js拖放可缩放树帮助折叠由某个链接连接的节点
- 23. 添加链接可折叠内容头(分裂链接)中 - CSS缺失
- 24. 如何使用d3.js展开可折叠树上的特定节点?
- 25. 添加超链接到indesign
- 26. 添加超链接到ValidationSummary
- 27. 添加节点到链表
- 28. 添加节点到链表
- 29. richfaces树通过单击树节点来折叠
- 30. 将超链接添加到PDF文档
已经有一个点击处理函数对每个节点,你为什么不只是用它来执行你想用超链接执行的任何操作? – 2013-02-19 07:09:48
好吧,点击处理程序连接到示例中的圆圈,并且(afaik)无法将点击处理程序添加到文本元素,所以这真是一个有效的问题。事实上,我无法弄清楚如何做到这一点。现在,我用一个'click'处理程序绘制第二个元素,重定向 – Marijn 2013-02-22 10:53:01
并且圆上的点击处理程序被附加到展开/折叠,我们不想破坏它。 – Marijn 2013-02-22 11:03:22