2017-05-26 52 views
0

基本上我有一個圖形,用戶可以點擊不同的SVG形狀,這樣.on('click')函數將改變顏色填充。但是,在某些時候,讓用戶選擇將圖恢復到其初始狀態是非常重要的。我認爲在我的案例中直觀的方法是通過點擊圖表外部的任何地方,即文檔主體上不在圖形座標平面上的某處(邊距,填充等)。D3圖形事件監聽器外的任何地方

我嘗試這樣做:

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')也是爲了安全。

回答

2

你也許能夠使用的東西像

window.onclick = function(event){ 
      if(!(event.target.className.baseVal=="circleClass")){ 
       d3.selectAll('circle').style('fill', function(d) { 
     return d.color; 
    }) 
} 
    }