我试图在单击时显示/隐藏 D3 中节点的文本。我尝试使用以下代码:
var node = svg.selectAll(".node")
.data(json.nodes)
(...)
node.on("click", function() {
if (textShowing) {
node.select("text").style("visibility", "hidden");
} else {
node.select("text").style("visibility", "visible");
}
textShowing = !textShowing;
});
该代码的结果是文本属性all单击其中任何一个节点时显示/消失。
如何仅影响单击节点的文本属性?
node
是包含所有组的选择(我认为它们是组,因为您没有复制/粘贴整个选择)。
如果您只想在单击的组中执行任何操作,则必须使用d3.select(this)
,它选择当前(在您的情况下,单击的)DOM 元素。
因此,代替:
node.select("text")
它应该是:
d3.select(this).select("text")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)