首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >D3 DataMaps:气泡上的OnClick事件

D3 DataMaps:气泡上的OnClick事件
EN

Stack Overflow用户
提问于 2014-11-30 16:26:07
回答 1查看 4.3K关注 0票数 6

我正在跟踪datamaps文档,并试图将onClick侦听器设置为我在svg上呈现的气泡。现在,svg有以下子标记:

代码语言:javascript
复制
<svg>
  <g id class="datamaps-subunits">..</g>
  <g id class="bubbles">..</g>
</svg>

医生们说,对于地图上所列的国家,应该以下列方式进行:

代码语言:javascript
复制
done: function(datamap) {
            datamap.svg.selectAll('.datamaps-subunits').on('click', function() {
              alert("hello");  
            });
        }

这很好,同时尝试点击地图上的特定区域。

试图将相同的侦听器附加到冒泡类没有任何作用。

代码语言:javascript
复制
done: function(datamap) {
            datamap.svg.selectAll('.bubbles').on('click', function() {
                alert("hello"); 
            });
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-30 17:35:18

done运行时,bubbles还没有被添加,因为bubbles是一个插件。

new Datamapsvg返回一个带有d3选择的对象

代码语言:javascript
复制
var map = new Datamap({...}); 
//add bubbles
map.bubbles(bubbleData);
//handle bubble clicks
map.svg.selectAll('.bubbles').on('click', function() {...});

这应该适用于第一批泡沫。

如果要动态添加气泡而不希望重置侦听器,则可以使用jQuery事件委托来处理动态气泡:

代码语言:javascript
复制
$(map.svg[0][0]).on('click', '.bubbles', function(e) {
  //handle click here as well
});
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27215394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档