首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击事件上的d3交互

点击事件上的d3交互
EN

Stack Overflow用户
提问于 2016-03-01 21:07:33
回答 2查看 75关注 0票数 0

我有一个地图与d3圆圈显示网站的位置,以及线显示每个网站的时间趋势。当点击相应的圆圈时,我试图使一个特定的线条突出显示。这里是代码。我似乎无法将站点I与以下函数连接起来:

代码语言:javascript
复制
function highlightLine(id) {
        lineGroup.classed("g-highlight", function(d) {
          return d.siteID == id.siteID;
        });
};
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-01 21:24:10

插入一个console.log,如下所示,它应该更加清晰:

代码语言:javascript
复制
function highlightLine(id) {
    lineGroup.classed("g-highlight", function(d) {
      console.log(d);
      return d.siteID == id.siteID;
    });
};

因为您要绑定到通过d3.nest运行的数据,所以您感兴趣的d的id实际上是d.key而不是d.siteID,它在那个级别上不存在。所以classed内部的布尔值应该是

代码语言:javascript
复制
return d.key == id.siteID

这将导致适当的趋势线的<g>有一个“g-突出显示”类,但是它仍然不会明显地显示这条线的颜色。我相信这是因为您的css规则.g-highlight { stroke:... }将笔画应用于包含<g>而不是其内部的<path>。您可以将css规则更改为.g-highlight path { ... },这将为您想要的路径添加颜色。

票数 1
EN

Stack Overflow用户

发布于 2016-03-01 21:13:55

要在d3中绑定单击事件,您应该使用该类选择对象并绑定单击:

代码语言:javascript
复制
d3.selectAll(".g-highlight").on("click", function(d) {
    return d.siteID == id.siteID;
 });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35733524

复制
相关文章

相似问题

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