是否有可能找出 class 边源 and/or 目标有什么?
Is it possible to find out what class an edges source and/or target has?
我给了一些节点 class "hidden" 和一些 class "visible".
我正在使用
d3.selectAll(".link")
到 select 所有 link 在我的力导向图中。这些 link 具有源和目标,全部 link 编辑在 JSON 文件中。
我想遍历这些 links 并检查 links 源节点 class(和目标)并查看是否有任何 classes = visible/hidden。
如果源和目标都是 "visible" 那么 link 将有一个 "visible" class 否则有一个 "hidden" class .
如何查看 link 的源和目标 class 是什么?
这是我试过的方法,但我不知道要在 'if' 主语句中放入什么。
d3.selectAll(".link.visible").attr("class", function(d) {
var c = "link";
if (d.source.visible && d.target.visible) //here this doesnt work, I need to
//find out if source and target of the selected link are visible
{
clog("VISIBLE");
c += " visible";
} else {
clog("HIDDEN");
c += " hidden";
}
return c;
});
我在开始时将可见 class 应用于所有节点:
var nodes = inner.selectAll(".node").append("g")
.data(network.network.data.nodes)
nodes.classed("visible", true);
这里是我 show/hide 节点的地方,取决于它们是否 selected 与否
nodes.classed("hidden", function (d)
{
//if()
return d.selected ? false : true;
});
nodes.classed("visible", function (d)
{
return d.selected ? true : false;
});
由于 source
和 target
数据节点都有一个 属性 selected
决定关联 DOM 节点的可见性,只需使用它属性 而不是寻找 CSS 类.
d3.selectAll(".link")
.attr("class", function(d) {
return d.source.selected && d.target.selected ? "visible" : "hidden";
});
我给了一些节点 class "hidden" 和一些 class "visible".
我正在使用
d3.selectAll(".link")
到 select 所有 link 在我的力导向图中。这些 link 具有源和目标,全部 link 编辑在 JSON 文件中。
我想遍历这些 links 并检查 links 源节点 class(和目标)并查看是否有任何 classes = visible/hidden。
如果源和目标都是 "visible" 那么 link 将有一个 "visible" class 否则有一个 "hidden" class .
如何查看 link 的源和目标 class 是什么?
这是我试过的方法,但我不知道要在 'if' 主语句中放入什么。
d3.selectAll(".link.visible").attr("class", function(d) {
var c = "link";
if (d.source.visible && d.target.visible) //here this doesnt work, I need to
//find out if source and target of the selected link are visible
{
clog("VISIBLE");
c += " visible";
} else {
clog("HIDDEN");
c += " hidden";
}
return c;
});
我在开始时将可见 class 应用于所有节点:
var nodes = inner.selectAll(".node").append("g")
.data(network.network.data.nodes)
nodes.classed("visible", true);
这里是我 show/hide 节点的地方,取决于它们是否 selected 与否
nodes.classed("hidden", function (d)
{
//if()
return d.selected ? false : true;
});
nodes.classed("visible", function (d)
{
return d.selected ? true : false;
});
由于 source
和 target
数据节点都有一个 属性 selected
决定关联 DOM 节点的可见性,只需使用它属性 而不是寻找 CSS 类.
d3.selectAll(".link")
.attr("class", function(d) {
return d.source.selected && d.target.selected ? "visible" : "hidden";
});