我的视图中有一个项目列表,ng-click并附有它们:
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在我的指令中处理函数中的点击事件,$event作为对被点击对象的引用传递,但我得到的是对img标签的引用,而不是li标签。然后我必须做这样的事情来获得li:
foo
$event
img
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 操作?
你需要$event.currentTarget而不是$event.target.
$event.currentTarget
$event.target