元素之间的链接悬停

时间:2013-10-15 12:06:12

标签: javascript d3.js mouseevent

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

在我正在研究的这个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");

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

1 个答案:

答案 0 :(得分:2)

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

虽然标题属于这些元素的属性,但您需要更改的是d.titlethis.title。工作示例here