0
我很努力去理解以下行爲:我有兩張地圖(基於topojson數據,通過d3可視化),並且在map1的某些部分上的mouseover上,map2的相應部分應該點亮。我用它來改變樣式(不透明或填充),但現在我想突出每個地圖部分的邊界。向前移動路徑改變選擇?
如例如here所示,需要將特定路徑移動到前方以使所有邊界可見。這對於我移動鼠標的區域(使用這個)是沒有問題的,但是當我選擇其他地圖的相應部分時,它會運行一次,然後其他部分會被選中 - 所以我的猜測是一些混亂的東西選擇。
這裏是代碼:
.on("mouseover",function(d){
var old=d.properties.iso; //this is the identifying number of the map-part(s)
sel=svg2.selectAll("path")
.data(datastore2015.features)
.filter(function(d){return d.properties.iso==old;})
.node(); //here the corresponding part(s) get filtered
d3.select(sel.parentNode.appendChild(sel)).classed("high2",true); //and this moves it to front and highlights the borders
鼠標移開時,它只是重置:
.on("mouseout",function(d){
svg2.selectAll("path").classed("high2",false);
當我的數據記錄到控制檯似乎每鼠標懸停移動通過數據集+1項,從鼠標移過來的第一個入口開始。我無法弄清楚爲什麼會發生這種情況,以及如何避免它。
我很感激你可以給我的任何想法,主要是我想了解什麼是錯誤的,爲什麼。
感謝