Cla*_*u S 6 javascript svg d3.js datamaps
我正在关注datamaps文档,我正在尝试将onClick监听器设置为我在svg上呈现的气泡.现在,svg div具有以下子标记:
<svg>
<g id class="datamaps-subunits">..</g>
<g id class="bubbles">..</g>
</svg>
Run Code Online (Sandbox Code Playgroud)
文件说,对于地图上列出的国家,这应该按照以下方式完成:
done: function(datamap) {
datamap.svg.selectAll('.datamaps-subunits').on('click', function() {
alert("hello");
});
}
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,同时尝试点击地图上的特定区域.
试图将相同的侦听器附加到bubbles类没有任何作用.
done: function(datamap) {
datamap.svg.selectAll('.bubbles').on('click', function() {
alert("hello");
});
}
Run Code Online (Sandbox Code Playgroud)
到时候done运行,bubbles还没有添加,因为bubbles是一个插件.
new Datamap返回具有d3选择的对象svg:
var map = new Datamap({...});
//add bubbles
map.bubbles(bubbleData);
//handle bubble clicks
map.svg.selectAll('.bubbles').on('click', function() {...});
Run Code Online (Sandbox Code Playgroud)
这应该适用于第一批泡沫.
如果您是动态添加气泡而不想重置监听器,则可以使用jQuery事件委托来处理动态气泡:
$(map.svg[0][0]).on('click', '.bubbles', function(e) {
//handle click here as well
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3785 次 |
| 最近记录: |