2017-02-21 109 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 ....謝謝! –

相關問題