2017-02-21 84 views
1

我愿意搜索并突出显示包含给定字符串的节点。 sampled3 js突出显示包含给定字符串的节点

对于我打电话set_focus方法

function set_focus(d) 
{ 
    text.style("opacity", function(o) { 
     return isConnected(d.id, o.id) ? 1 : null; 
    }); 

    img.style("opacity", function(o) { 
     return isConnected(d.id, o.id) ? 1 : null; 
    }); 

    link.style("opacity", function(o) { 
     return o.source.index == d.index || o.target.index == d.index ? 1 : null; 
    }); 

} 

以上功能设置有条件元素的不透明度。我想设置相互连接的节点的不透明度。但我不想打扰那些未连接的节点的不透明度。

更多的澄清:

return isConnected(d.id, o.id) ? 1 : null; 

我不想,如果isConnected == false

需要返回不透明度:return isConnected(d.id, o.id) ? 1 : "here return the current opacity value";

破天:return isConnected(d.id, o.id) ? 1 : "returning zero or null";

回答

1

你可以得到当前元件与吸气不透明度值:

d3.select(this).style("opacity"); 

然后,您可以在您的三元运营商使用它:

text.style("opacity", function(o) { 
    var current = d3.select(this).style("opacity"); 
    return isConnected(d.id, o.id) ? 1 : current; 
}); 
+0

感谢赫拉尔多,我试过你说什么?但var current = d3.select(this).attr(“opacity”);返回null。我是否需要在创建文本时设置文本的不透明度? –

+1

好了,var current = d3.select(this).style(“opacity”);用风格取代attr ....谢谢! –

相关问题