目前我有我的节点名称显示。如果用户点击节点或将鼠标悬停在节点上(我会喜欢测试后决定),我想我只想要显示节点的名称。通过点击/悬停节点显示名称? (D3.js版本4)
要显示的文字我有这个目前:
var nodes_text = svg.selectAll(".nodetext")
.data(nodes)
.enter()
.append("text")
.attr("class", "nodetext slds-text-heading--label")
.attr("text-anchor", "middle")
.attr("dx", -20)
.attr("dy", 20)
.text(function(d) {
return d.name;
});
我最初的想法是要删除的最后一条语句在上面的代码,并将其移动到“点击”事件......
svg.select("circle").on("click", function(d) {
svg.select(".nodetext").text(function(d) {
return d.name;
});
});
但是,只有当我由于某种原因点击我的中央节点时才有效。想知道是否有更明显的方法。我的节点数据存储在一个名为“节点”的数组中。
编辑:这里是显示基本问题的一些测试数据的JFiddle。点击紫色节点工作,但既然你有文本两种不同的选择和圆(不带这些元素组,这是传统的做法)别人不 https://jsfiddle.net/mg8b46aj/1/
你总是选择的第一个元素都过滤他们。如果你需要帮助,你必须提供圆圈代码和数据数组的样本。最好是,如果你希望得到更快的帮助,可以创建一个jsfiddle/plunker/codepen/blocks/whatever。同时,我正在投票结束这个问题:*“寻求调试帮助的问题必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。“* –
我可以提供jfiddle我想如果它允许我编辑问题。说尽可能短的代码,所以不想提供整个程序,我想我会尽量简化它。 – Eango
好,我只是撤回了我的投票。 –