[英]Is there a way to register an onclick event handler on elements within an SVG image?
我想在HTML5页面中加载SVG图片,并使它的组件可点击。 如果用户将鼠标移到SVG呈现的形状上,则onclick
事件应执行某些操作。 目的是使用户能够单击SVG图像的一部分或单击该SVG下方的表中提供的数据行。
所有SVG组件都是具有text
元素的g
元素,而g
元素又具有文本内容,这些文本内容可以用作以后区分各个组件的ID。
SVG示例(仅包含一个g
-component和文本“ abc”的缩写):
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="232pt" height="260pt" viewBox="0.00 0.00 231.69 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g class="node">
<ellipse fill="#008000" stroke="#ffffff" cx="61.545" cy="-90" rx="46.2923" ry="18"/>
<text text-anchor="middle" x="61.545" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#ffffff">abc</text>
</g>
</svg>
有没有一种方法可以使用JQuery(或其他一些JavaScript库或纯JavaScript代码)在这些g
元素上注册onclick
事件处理程序? 如果是这样,您该怎么做?
我只是向g
元素添加了一个ID,并且使用简单的jQuery我就可以设法获取onClick
事件。
<svg width="232pt" height="260pt" viewBox="0.00 0.00 231.69 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g class="node" id="myId">
<ellipse fill="#008000" stroke="#ffffff" cx="61.545" cy="-90" rx="46.2923" ry="18"/>
<text text-anchor="middle" x="61.545" y="-86.3" font-family="Times,serif" font-size="14.00" fill="#ffffff">abc</text>
</g>
</svg>
$("#myId").on("click", function() { ... });
您可以使用任何您想要的。
JSFiddle: http : //jsfiddle.net/oc6zm1by/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.