0

如何使用 d3 检索和使用非 svg DOM 元素的标题属性?

在我正在处理的这个 D3 示例中,当用户将鼠标悬停在焦点国家/地区时,相应的标题框也会进入悬停状态:

http://bl.ocks.org/wboykinm/6967409

但是,当我尝试以另一种方式重复它时(悬停标题框时更改正确国家的状态),我得到“无法读取未定义的属性”。在这一点上,我已经尝试了几十种方式来定义它,它只是没有返回国家名称值。问题似乎源于这一行:

b.on("mouseover", function(d) {
  d3.selectAll("[title=" + d.title + "]").classed("countryActive",true);
});

其中“b”是每个标题框:

b = d3.selectAll(".mminfo");

如果有人能指出必须是非常基本的语法错误,我会很高兴。谢谢!

4

1 回答 1

2

问题是您试图访问绑定到元素的数据(通过d)而没有绑定元素。也就是说,d没有定义,因为您是.mminfo手动创建元素,而不使用 D3.data().enter()模式。

标题在这些元素的属性中,所以您需要更改的d.title只是this.title. 这里的工作示例。

于 2013-10-15T12:43:56.287 回答