Javascript 将鼠标事件分配给svg:d3.js中的文本
我正在尝试拾取Javascript 将鼠标事件分配给svg:d3.js中的文本,javascript,svg,d3.js,Javascript,Svg,D3.js,我正在尝试拾取svg:text元素的鼠标事件。我注意到,.on(“click”,…)起作用,但其他事件,如“mouseover”、“mousemove”和“mouseout”不起作用 看看这个例子,我发现所采取的方法是用一个不可见的svg:rect覆盖文本,并将事件分配给它。如果有一个简单的盒子就可以了,但是如果有几个盒子的话,它看起来会变得又累又乱 是否有一种规范的方法来处理文本的鼠标悬停事件 为了尽可能具体,我尝试创建一个标记云,并为每个标记获取这些悬停事件。我可能只需要使用divs就可以了
svg:text
元素的鼠标事件。我注意到,.on(“click”,…)
起作用,但其他事件,如“mouseover”
、“mousemove”
和“mouseout”
不起作用
看看这个例子,我发现所采取的方法是用一个不可见的svg:rect
覆盖文本,并将事件分配给它。如果有一个简单的盒子就可以了,但是如果有几个盒子的话,它看起来会变得又累又乱
是否有一种规范的方法来处理文本的鼠标悬停事件
为了尽可能具体,我尝试创建一个标记云,并为每个标记获取这些悬停事件。我可能只需要使用
div
s就可以了,但我想知道是否有一种简单的方法可以在SVG容器中实现这一点。我认为将事件分配给文本元素的问题是,它们只在实际文本上触发,即不触发边界框。从理论上讲,它应该是可行的(至少我不知道在这方面对文本有什么特殊的处理)——你能给出一个具体的例子吗
您还可以尝试将每个文本元素放入
svg:g
元素中,并将事件处理程序附加到该元素。先生,您真是太棒了!将每个单独的文本元素封装在svg:g中,并为其分配鼠标操作!谢谢。这正是SVG工作组在SVG Tiny 1.2中添加pointer events=boundingBox
的原因。目前,Opera/Presto AFAIK仅支持该功能。规格链接: