AngularNG单击从svg元素获取id

fdbelqdn  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(304)

我有这个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&#10;                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&#10;                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&#10;                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&#10;                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&#10;                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&#10;                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&#10;                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&#10;                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);
    }
d4so4syb

d4so4syb1#

你能做点像这样的事吗 $scope.test = function test() { console.log("this click event is working"); alert("this is working"); }

drkbr07n

drkbr07n2#

首先,您应该像这样绑定(单击)和$event (click)="svgClick($event)" 现在我在自己的浏览器中使用 <svg (click)="svgClick($event)" id='test'... 标签
在我的 svgClick(e) 如果访问e.path[1],则返回函数。它显示的id test .
请注意,路径[1]并不总是包含id,它取决于您放置id的元素 id='test' 以及用户单击的元素。
您可以在所有元素上循环,并使用以下内容查找id path.any() / path.some() .

相关问题