2013-09-24 81 views
0

我回到了另一個d3.js問題。 我有一個choropleth地圖,我想要一個工具提示,它顯示了鼠標懸停功能上社區的正確值。 它的工作接近完美,只有一個問題,沒有「更新」值。在每個縣都是一樣的。 我希望有人對我有一個答案。謝謝。D3.js在工具提示中沒有值更新

這裏是我的代碼片段:

var feature = group.selectAll("path") 
    .data(collection.features) 
    .enter() 
    .append("path") 
    //.transition() 
    //.duration(9000) 
    .attr("fill",function(d) { 

     //Get data value 
     var value = d.properties.EINWOHNER; 
     //console.log(value); 

     if (value) { 
       //If value exists… 
       return color(value); 
     } 
     else { 
       //If value is undefined… 
       return "none"; 
     } 
    }) 

    .on("mouseover", function(d) { 

     d3.select("#tooltip") 
      .data(collection.features) 
      .select("#value") 
      .text(function(d){ 
       return d.properties.EINWOHNER; 
      }); 

     //Show the tooltip 
     d3.select("#tooltip").classed("hidden", false); 
    }) 

    .on("mouseout", function() { 

     //Hide the tooltip 
     d3.select("#tooltip").classed("hidden", true);       
    }); 

回答

1

設置文本,使用

.text(d.properties.EINWOHNER); 

您目前正從綁定到#value DOM元素爲他們每個人的數據值。您也不需要在那裏傳遞數據 - 您已經擁有d中的當前數據。所以完整的代碼看起來像這樣。

.on("mouseover", function(d) { 
    d3.select("#tooltip") 
     .text(d.properties.EINWOHNER); 
    d3.select("#tooltip").classed("hidden", false); 
}) 
+0

像上次一樣,你做得很對。謝謝你。我和你的更多答案必須在我的碩士論文中提及你的名字。對我的英語感到抱歉,這不好。順便說一下你的名字聽起來像德語 – CST