从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
:
$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
的“问题”显然被设置为null。
这是由于console.log在最后一个执行状态下显示深层可变对象,而不是在调用console.log时的状态。
您可以检查以获取更多信息: 连续调用console.log会产生不一致的结果