将鼠标事件分配给d3.js中的svg:text

Yon*_*ony 4 javascript svg d3.js

我正在尝试为svg:text元素拾取鼠标事件.我注意到的是,.on("click", ...)工作,但其他事件一样"mouseover","mousemove"和"mouseout"没有.

看一下国家健康与财富的例子,我看到所采用的方法是用不可见的方式覆盖文本,svg:rect而是将事件分配给事件.如果有一个简单的盒子,这很好,但如果有几个,它似乎会变得烦人和凌乱.

有没有规范的方法来处理文本的鼠标悬停事件?

为了尽可能具体,我正在尝试使用标签云,并为每个标签选择这些悬停事件.我可能只是用divs完成它并完成它,但我想知道是否有一种简单的方法在 SVG容器中完成它.

Lar*_*off 6

我认为将事件分配给文本元素的问题是它们只触发实际文本,即不触发边界框.理论上它应该工作(至少我不知道在这方面有任何特殊的文本处理) - 你能给出一个具体的例子吗?

您还可以尝试将每个文本元素放在svg:g元素中,并将事件处理程序附加到该元素.

  • 这正是SVG WG在SVG Tiny 1.2中添加`pointer-events = boundingBox`的原因.目前只支持Opera/Presto AFAIK.规范链接:http://www.w3.org/TR/SVGTiny12/interact.html#PointerEventsProperty (2认同)