简体   繁体   English

获取元素在SVG元素内单击

[英]Get element click on inside an SVG Element

I have two nested <svg> elements as follows: 我有两个嵌套的<svg>元素,如下所示:

<svg id="main_svg">
    <svg data="business" id="something">
        <rect>
            // Code for rectangle
        </rect>
    </svg>
</svg>

How can I get the id of the <svg> tag inside main_svg ? 如何获取main_svg <svg>标记的main_svg

I tried the contextmenu event handler with this.id but it always returns main_svg : 我用this.id尝试了contextmenu事件处理程序,但是它总是返回main_svg

$("svg").contextmenu(function(e) {
    e.preventDefault();
    console.log(this.id);
});

How can this be done? 如何才能做到这一点? Are there any better approaches? 有没有更好的方法? I am happy with either events: onclick or contextmenu . 我对以下两个事件感到满意: onclickcontextmenu

You can use the jQuery function $('svg').find("> svg") to find every direct child- <svg> -element of an <svg> element. 您可以使用jQuery函数$('svg').find("> svg")找到每一个直接的儿童为<svg>的的-元素<svg>元素。

$('svg').find("> svg").each(function() {
    var id = $(this).attr("id");
    console.log(id);
});

See the jsFiddle: https://jsfiddle.net/kyjn6z87/ 参见jsFiddle: https ://jsfiddle.net/kyjn6z87/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM