Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将鼠标事件分配给svg:d3.js中的文本_Javascript_Svg_D3.js - Fatal编程技术网

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仅支持该功能。规格链接: