Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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对象可单击?_Javascript_Svg - Fatal编程技术网

Javascript 有没有办法使SVG对象可单击?

Javascript 有没有办法使SVG对象可单击?,javascript,svg,Javascript,Svg,我正在使用可在此处查看的SVG: 我只想发布SVG,但由于街道地图层,文件非常大。但是,如果单击链接,您可以看到这是一个划分为18个不同svg路径的地图,其中有许多不同的颜色对它们进行着色。我使用这张地图的目标是让18个不同部分中的每一个都可以点击,或者给它们一个在谷歌上搜索时发现了这个jQuery插件,用于装饰图像地图,可以帮助您实现目标: 您可以非常轻松地处理它,方法是向每个元素添加数据属性,然后通过jquery或javascript处理它 首先,添加类似于dataurl=”的内容http:

我正在使用可在此处查看的SVG:


我只想发布SVG,但由于街道地图层,文件非常大。但是,如果单击链接,您可以看到这是一个划分为18个不同svg路径的地图,其中有许多不同的颜色对它们进行着色。我使用这张地图的目标是让18个不同部分中的每一个都可以点击,或者给它们一个

在谷歌上搜索时发现了这个jQuery插件,用于装饰图像地图,可以帮助您实现目标:


您可以非常轻松地处理它,方法是向每个
元素添加
数据
属性,然后通过jquery或javascript处理它

  • 首先,添加类似于
    dataurl=”的内容http://your-url.com“
    元素。示例:

  • 在关闭
    标记之前添加jquery库,步骤3中的脚本如下所示:

                    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
                    <script>
                            //your script
                    </script>
            </body>
    </html>
    
  • 测试它:


  • 在我看来,最好的解决方案是SVG元素

    
    
    您可以编辑您的问题以显示如何绘制svg图像吗?确实如此!谢谢@milesgrimes您能手动编辑
    元素吗?因此,您可以为每个分区指定一个
    id=“zone1”
    ?是的,@Frondor。事实上,这就是我最初编写代码的方式,根据该区域的收入信息更改填充:-)我有一个解决方案,但它基于jquery。。您可以使用jquery还是只喜欢纯javascript?@n1c9如果您在我上次编辑之前试图实现这个问题,请看一下代码,它有一点变化:)我希望您知道如何处理像jquery这样的javascript库:-)但感谢您给我另一个了解更多的借口,谢谢你的回答!完美的谢谢,@kaido!
    $(document).ready(function(){
            $('path').on('click', function(e){
                e.preventDefault();
                var url = $(this).data('url');
                console.log('Moving to:', url);
                window.open(url, '_blank');
            });
    });