javascript - 我如何给某些边缘上课?

标签 javascript css d3.js

我有一个力导向图,我可以在其中显示和隐藏节点。我希望根据边缘源和目标是显示还是隐藏来对边缘执行此操作。

这里我选择边,遍历所有选定的节点以查看它们是否与边源匹配,如果匹配,再次循环它们以查看它们是否也与边的目标匹配,然后我想如果它不显示源和目标,则将该边缘类设置为“可见”,然后将类设置为“隐藏”。

  var selectedNodes = d3.selectAll(".selectedNode"); 
  var linksVisible = d3.selectAll(".link.visible"); 

  var countOfVisibleLinks = [];
  linksVisible.each(function(o)
  {
      selectedNodes.each(function(i)
      {
          if(o.source.index === i.index)
          {
              //clog("yes1");
              selectedNodes.each(function(j)
              {
                  if(o.target.index === j.index)
                  { 
                      countOfVisibleLinks++;
                      //visibleLinks.push(o);

                      var myLink = d3.selectAll(".link.visible")
                                     .classed("hidden", function(d) { 
                                                           return d === o ? false : true;
                                                        });
                      //.filter(function(d) { return d === o; })
                      //.attr('class', 'hidden');

                   }
               })
          } 
      })
  });

“countOfVisibleLinks”有效,因为它正确地计算了可见边缘,但此后的函数不会将选定的边缘设置为“可见”,将未选定的边缘设置为“隐藏”

有什么想法吗?

最佳答案

我会尝试类似的东西

d3.selectAll(".link").attr("class", function(d) {
    var c = "link";
    if (d.source.visible && d.target.visible) { // or however you check the nodes?
        c += " visible";
    } else {
        c += " hidden";
    }
    return c;
});

对于您的场景,您可以使用 if (selectedNodes.indexOf(d.source)...

关于javascript - 我如何给某些边缘上课?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27566369/

相关文章:

javascript - 无法在新 (AJAX) 窗口中通过 ID、类名等访问元素?

css - 将文本换行到与视口(viewport)对齐的新行

jquery - Chrome vs Firefox 之战——表格单元格中的图像叠加

html - Icomoon 自定义字体多种颜色

javascript - d3js无法访问数据索引

javascript - 使交叉过滤器中的 X 轴动态化

javascript - jQuery 事件 : disable namespaces (or use an event with a period in the name)

javascript - 为什么这是一个无限 JavaScript for 循环 : can't fix the bug

javascript - 调用方法一次,但在主干中执行了多次

动态创建图形的 Javascript 库?