2016-01-23 76 views
3

我正在使用D3和帶有氣泡的DataMaps。我想在有人點擊泡泡時添加自定義操作。這些行爲需要傳遞泡泡的屬性,如泡泡的名字。D3 DataMaps:在氣泡屬性中傳遞的氣泡上的OnClick事件

如何將泡泡的名稱傳遞給泡泡的點擊事件?

map.svg.selectAll('.bubbles').on('click', function(bubble) { 
    console.log(bubble.name); 
}); 

此代碼段不起作用。我收到以下錯誤信息:

Uncaught TypeError: Cannot read property 'name' of undefined 

我下面從本文檔的similar example傳遞的地理屬性:

datamap.svg.selectAll('.datamaps-subunit').on('click', function(geography) { 
    alert(geography.properties.name); 
}); 

我也看過this very similar question不回答我的問題關於傳遞泡沫的屬性。

+0

如果用console.log(bubble)替換console.log()會得到什麼結果?' – Fawzan

回答

2

而是這個

map.svg.selectAll('.bubbles').on('click', function(bubble) { 
    console.log(bubble.name); 
}); 

試試:

d3.selectAll(".datamaps-bubble").on('click', function(bubble) { 
    console.log(bubble); 
}); 

希望這個作品!

+0

完美工作。謝謝! – sirmxanot