javascript - D3 数据映射 : OnClick Events on Bubbles Passing in Attributes of Bubble

标签 javascript d3.js datamaps

我正在使用带有气泡的 D3 和 DataMaps。我想在有人点击气泡时添加自定义操作。这些操作需要传递气泡的属性,例如气泡的名称。

如何将气泡的名称传递到该气泡的点击事件中?

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这并没有回答我关于传递气泡属性的问题。

最佳答案

代替这个

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

尝试:

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

希望这能奏效!

关于javascript - D3 数据映射 : OnClick Events on Bubbles Passing in Attributes of Bubble,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34958205/

相关文章:

javascript - 如何将 promise 结果传递给外部函数?

javascript - 如何在 d3 图表的 x 轴上绘制左右矩形 slider

javascript - 多线图 x 轴刻度未与数据点对齐

javascript - 数据图 - 根据值更改颜色

javascript - D3 数据映射 : OnClick Events on Bubbles

javascript - new Datamap() 在调用之间保持共享的内存状态

javascript - 如何阻止我的代码将选项卡放入文本框中

javascript - 根据 Electron 主过程中生成的数据创建新窗口的内容

javascript - 为什么放大补间线时会丢失点?

javascript - 使用 CharCodeAt 与索引而不是句子