Javascript d3链接未正确隐藏
我有一个d3力图,它具有隐藏节点的功能。当用户选择(通过双击节点)并选择Javascript d3链接未正确隐藏,javascript,d3.js,force-layout,graph-visualization,Javascript,D3.js,Force Layout,Graph Visualization,我有一个d3力图,它具有隐藏节点的功能。当用户选择(通过双击节点)并选择隐藏,该节点及其相邻链接将消失。我有节点消失,但由于某种原因,链接没有消失与他们 以下是与此函数相关的代码片段: // Node behavior for checking if the node is hidden. node.style("visibility", function(d) { if (d.data['visible'] === false){ console.log(d.data[
隐藏
,该节点及其相邻链接将消失。我有节点消失,但由于某种原因,链接没有消失与他们
以下是与此函数相关的代码片段:
// Node behavior for checking if the node is hidden.
node.style("visibility", function(d) {
if (d.data['visible'] === false){
console.log(d.data['id'] + " is hidden.")
return "hidden";
}
else {
return "visible";
}
});
// Link color and visibility based on JSON data.
link.style("stroke", function(d) { return d.data['color'] })
.style("visibility", function(d) {
if (d.data['visible'] === false) {
return "hidden";
}
else {
return "visible";
}});
function hideNode() {
// Checks if any nodes are selected.
if (selectedNodes.length > 0) {
// Iterates over all of the selected nodes.
for (var i = 0; i < selectedNodes.length; i++) {
// Sets the node visible attribute to false and removes the node from the selected array.
selectedNodes[i].data['visible'] = false;
selectedNodes[i].selected = false;
// Iterates through each of the edges to check visibility.
for (var j = 0; j < edges.length; j++) {
if (selectedNodes[i].data.id === edges[j].data.source || selectedNodes[i].data.id === edges[j].data.target) {
edges[j].data['visible'] === false;
}
}
}
}
else alert("No node(s) selected.");
update();
}
function revealNode() {
// nodes.forEach(function(d) {
// d.removed === false;
// });
for (var i = 0; i < nodes.length; i++) {
nodes[i].data['visible'] = true;
}
update();
}
//用于检查节点是否隐藏的节点行为。
节点样式(“可见性”,功能(d){
if(d.data['visible']==false){
console.log(d.data['id']+“是隐藏的。”)
返回“隐藏”;
}
否则{
返回“可见”;
}
});
//基于JSON数据的链接颜色和可见性。
style(“stroke”,函数(d){返回d.data['color']})
.风格(“可见性”,功能(d){
if(d.data['visible']==false){
返回“隐藏”;
}
否则{
返回“可见”;
}});
函数hideNode(){
//检查是否选择了任何节点。
如果(selectedNodes.length>0){
//迭代所有选定的节点。
对于(变量i=0;i
取消隐藏
有效,隐藏
适用于节点
,但不适用于链接
这里是我的图表和基本代码,仅供参考
不确定我做错了什么。我认为问题在于您使用的是===而不是=此处:
edges[j].data['visible'] === false;
希望能有所帮助。谢谢!然而,这又带来了另一个问题,现在链接没有取消隐藏。我已经更新了bl.ocks来说明我的意思。没关系!显然,如果我没有将
边设置为可见的话,它就不会。。哈哈。。。谢谢你的帮助!