在mouseover d3.js强制布局上标记儿童

时间:2015-11-06 18:43:28

标签: javascript d3.js force-layout

我想在鼠标悬停时标记节点的子节点。为此,我首先在输入时为所有节点创建了一个文本属性。然后我为mouseover事件定义了一个淡入淡出函数。 我在o.select(“text”)行中选择节点o的text属性时遇到了困难。我得到一个错误o.select不是一个函数。我该怎么做呢?

function fade(opacity) {
 return function(d) {
    if (d.group == 5){
     sourceNeighbors[d.index].sort(compare);
     link.style("stroke-opacity", function(o) {

       if (o.source === d || o.target === d) {
        return opacity;
       }
       else if (isConnected(o.source,d) && isConnected(o.target, d)) {
        return 1;
       }
    return opacity;
    });

        node.style("stroke-opacity", function(o) {

        if ((d.name != o.name) && isConnected(d, o)) {
            if (opacity == 1) {
                o.select(text)
                    .text("");
            }
            else {
                var num = findIndex(d.index, o.index);
                o.select(text)
                    .text(num.toString());      
            }
        }


            thisOpacity = isConnected(d, o) ? 1 : opacity;
            this.setAttribute('fill-opacity', thisOpacity);
            return thisOpacity;
        });


    }
 };
}

更新:我将行更改为d3.select(o).text(“”);  这里也是plunkr,d3.js代码在script.js中。  这也是我在mouseover上看到的graph,红色节点缺少文本。

0 个答案:

没有答案