【发布时间】:2012-09-01 12:41:43
【问题描述】:
在 D3.js 中工作,我想选择与当前元素的选择器 except 匹配的所有元素。
原因是我想将鼠标悬停在一个圆圈上,并让具有相同类别的所有其他圆圈变为浅蓝色,但当前圆圈保持相同的阴影。
这是我目前拥有的:
vis.selectAll('circle.prospect')
.on("mouseover", function(d) {
console.log(d);
d3.selectAll('circle.prospect').transition().style('opacity','0.5');
d3.select(this).attr('opacity','1.0');
});
在 jQuery 中,我could do this using not。任何人都知道 D3.js 等价物吗?
【问题讨论】:
-
你试过
d3.selectAll('circle.prospect:not(this)')吗? -
@ZoltanToth - 是的,恐怕这行不通。
-
您也可以为此使用纯 CSS,而不是 JavaScript。例如,当悬停在外部 SVG 元素中的任何圆圈上时淡出其他圆圈:
svg:hover circle:not(:hover) { opacity: .5; }.
标签: javascript jquery d3.js