我有这个svg元素,我想从这个svg元素捕获id,它会产生未定义的输出
这是我的svg元素
<g id="A" ng-click="test(this)" >
<g>
<path class="st6" d="M370.1,180.1C370.1,180.1,370.1,180.1,370.1,180.1C370.1,180.1,370.1,180.1,370.1,180.1z"/>
<path class="st6" d="M458.4,150.9c-8.2,0-4.4,5.6-21.9-1.1c-17.5-6.7-19.3-8.5-25.8-19.5c0,0-1.2-4.1-10.5-4.4v0c0,0-0.1,0-0.1,0 c0,0,0,0-0.1,0v0c-9.3,0.3-10.5,4.4-10.5,4.4c-6.6,11-8.3,12.8-25.8,19.5c-17.5,6.7-9.7,5.2-17.9,5.2c-1.5,0-9.4-5.1-9.4-4 c0.1,4.1,0.6,9.5,0.6,9.5l7.5,5.3l2.7-0.3c0-0.2,0.2-4.3,2.5-3c2.5,1.5,8.7,2.9,12.2,5c1.6,1,0.2,6.2,1.2,7.7 c2.5,3.6,6.8,4.9,7.1,5c1.7-1.8,3-2.2,3-2.2l14.7,7.4l-0.2,1.5c1,1.8,10.9,5.2,12.3,5.6v0.1c0,0,0,0,0.1,0c0,0,0.1,0,0.1,0v-0.1 c1.3-0.5,11.3-3.9,12.3-5.6l-0.2-1.5l13.6-6.6c0,0,1.4,2.6,4.1,1.5c2.8-1.1,9.2-6.3,9.2-6.3s0.1,1.9,3,0.7 c2.9-1.2,13.6-9.2,13.6-9.2l2.5,0.9l6.5-8.2C464.8,157.9,466.6,150.9,458.4,150.9z M403.1,172.6l-3,0.3l-3-0.3 c0,0-35.9-12.8-34.4-12.9s6.7-1.4,6.7-1.4v1.7h2.6l0.2-3.6c0,0,7.1-1.2,13.1-4.1c6-2.9,8.3-13.3,8.3-13.3l6.5-0.2l6.5,0.2 c0,0,2.2,10.4,8.3,13.3c6,2.9,13.1,4.1,13.1,4.1l0.2,3.6h2.6v-1.7c0,0,5.2,1.2,6.7,1.4S403.1,172.6,403.1,172.6z M446.7,163.2 c0,0-5.2-2.1-0.6-5.6c4.5-3.5,5.3,1,5.3,1S451.4,164.7,446.7,163.2z"/>
</g>
</g>
这是我的点击功能
$scope.test = function test(g)
{
var str = g.id;
console.log(str);
alert(str);
}
2条答案
按热度按时间d4so4syb1#
你能做点像这样的事吗
$scope.test = function test() { console.log("this click event is working"); alert("this is working"); }
drkbr07n2#
首先,您应该像这样绑定(单击)和$event
(click)="svgClick($event)"
现在我在自己的浏览器中使用<svg (click)="svgClick($event)" id='test'...
标签在我的
svgClick(e)
如果访问e.path[1],则返回函数。它显示的idtest
.请注意,路径[1]并不总是包含id,它取决于您放置id的元素
id='test'
以及用户单击的元素。您可以在所有元素上循环,并使用以下内容查找id
path.any() / path.some()
.