我在视图中有一个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指令中函数中的click事件,将其$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