Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 为什么此站点在注册单击事件时遇到问题?_Javascript_Jquery_Css_Svg_D3.js - Fatal编程技术网

Javascript 为什么此站点在注册单击事件时遇到问题?

Javascript 为什么此站点在注册单击事件时遇到问题?,javascript,jquery,css,svg,d3.js,Javascript,Jquery,Css,Svg,D3.js,我有一张用d3制作的地图,上面有一个标题,我想把它显示为鼠标悬停在工具提示上。它可以正确处理鼠标单击事件以进行平移和缩放。但是,它不处理工具提示的鼠标悬停 我的HTML如下所示: <div id="mapwrapper"> <div id="map"> <svg width...> 我尝试过几种显示工具提示的方法,但都不起作用。我还尝试设置一个简单的jquery mouseover警报(当您在具有特定类的SVG元素上运行鼠标时,只显示

我有一张用d3制作的地图,上面有一个标题,我想把它显示为鼠标悬停在工具提示上。它可以正确处理鼠标单击事件以进行平移和缩放。但是,它不处理工具提示的鼠标悬停

我的HTML如下所示:

<div id="mapwrapper">
    <div id="map">
        <svg width...>
我尝试过几种显示工具提示的方法,但都不起作用。我还尝试设置一个简单的jquery mouseover警报(当您在具有特定类的SVG元素上运行鼠标时,只显示一个弹出窗口),但这不起作用。很明显,有什么东西把站点上SVG上的鼠标悬停事件搞砸了。我知道d3有“事件”——尽管我不知道它们是如何工作的

有趣的是,如果我将HTML复制并粘贴到一个新文档中,然后使用register click events将该文档加载到SVG中

我已将SVG上的属性设置为可见,并获得相同的行为


如何调试此问题

问题是我有一个SVG矩形,它阻塞了它下面的路径元素。当我隐藏覆盖其子对象的SVG矩形时,子对象(被阻止)注册单击事件

我没有否决这个问题,但对如何使它变得更好,我有一些建议。考虑在问题中包含一些代码,这样在站点被拆除后它不会过时。此外,这将让我们了解您是如何试图解决问题的,从而为您提供更好的答案。:)@音乐上,我们添加了一些代码来说明
mouseover
事件不会在
svg
上触发,它只会向上冒泡,而且只有在某些底层元素没有无意中停止传播的情况下才会发生。您是否也在
mouseenter
事件中尝试过这一点?参考资料:@musicaly\u ut是的。点击事件也有同样的问题。查看我的编辑我不认为jQuery可以为SVG元素定义事件处理程序,因为它没有使用所需的名称空间。既然您已经标记了问题(或者有人已经标记了问题)d3.js,那么您是否可以改用d3.js事件处理?这确实适用于SVG。
$("#mapwrapper").on("mouseover", function() { //same for click events...
    alert("mapwrapper"); //fires
});
$("#map").on("mouseover", function() {
    alert("map");  //fires
}); 
$("svg").on("mouseover", function() {
    alert("map");   //does not fire
});