Javascript D3图形事件侦听器之外的任意位置
基本上,我有一个图形,用户可以在其中单击不同的SVG形状,通过这样做,Javascript D3图形事件侦听器之外的任意位置,javascript,d3.js,Javascript,D3.js,基本上,我有一个图形,用户可以在其中单击不同的SVG形状,通过这样做,.on('click')函数将更改颜色填充。然而,在某个时刻,给用户一个将图形恢复到初始状态的选项是很重要的。我认为对于我的案例来说,直观的方法是单击图形之外的任何位置,即文档体上不在图形坐标平面内的某个位置(边距、填充等) 我试过这个: d3.select('body').on('click', function() { d3.selectAll('circle').style('fill', function(d)
.on('click')
函数将更改颜色填充。然而,在某个时刻,给用户一个将图形恢复到初始状态的选项是很重要的。我认为对于我的案例来说,直观的方法是单击图形之外的任何位置,即文档体上不在图形坐标平面内的某个位置(边距、填充等)
我试过这个:
d3.select('body').on('click', function() {
d3.selectAll('circle').style('fill', function(d) {
return d.color;
})
});
它没有任何效果。我猜我现有的点击效果会覆盖我上面尝试过的d3.select('body')。on('click')
。要么这样,要么我的方法完全错误
这里有任何建议都很好
我也知道
.attr('fill')
和.style('fill')
应该始终保持一致,我确实需要.style('fill')
。为了安全起见,我尝试了.attr('fill')
window.onclick = function(event){
if(!(event.target.className.baseVal=="circleClass")){
d3.selectAll('circle').style('fill', function(d) {
return d.color;
})
}
}