一尘不染

从ng-click获取原始元素

angularjs

我在视图中有一个ng-click附加的项目清单:

<ul id="team-filters">
    <li ng-click="foo($event, team)" ng-repeat="team in teams">
         <img src="{{team.logoSmall}}" alt="{{team.name}}" title="{{team.name}}">
    </li>
</ul>

我正在处理foo指令中函数中的click事件,将其$event作为对被单击对象的引用,但是我得到的是对img标签的引用,而不是对li标签的引用。然后,我必须做这样的事情才能得到li

$scope.foo = function($event, team) {
   var el = (function(){
       if ($event.target.nodeName === 'IMG') {
          return angular.element($event.target).parent(); // get li
       } else {
          return angular.element($event.target);          // is li
       }
   })();

有没有一种简单的方法可以获取对ng-click绑定元素的引用,而无需在我的指令中执行DOM操作?


阅读 216

收藏
2020-07-04

共1个答案

一尘不染

您需要$event.currentTarget代替$event.target

2020-07-04