angularjs - 从 ng-click 获取原始元素

标签 angularjs angularjs-directive

我的 View 中有一个项目列表,其中附加有 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:

$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 绑定(bind)到的元素的引用,而无需在我的指令中执行 DOM 操作?

最佳答案

您需要 $event.currentTarget 而不是 $event.target

关于angularjs - 从 ng-click 获取原始元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107613/

相关文章:

javascript - Angular 指令 - 添加指令后范围中断

angularjs - 如何使用 ng-click on a li 隐藏它的 ul parent

angularjs - 如何在自定义指令内单击按钮时调用指令

javascript - 如何在 angularjs 中进行自动完成(过滤器列表不显示)

javascript - 使用机器 IP 访问 localhost 会导致 Ajax 调用失败

javascript - 获取点击元素的索引

javascript - 从 Angular Directive(指令)调用 Controller 函数

javascript - 如何在 Controller 之前运行指令功能?

angularjs - 在 ionicframework 中为 sqlite 获取 table_info 的意外标记

AngularJS:从 bootstrap-ui Accordion 访问范围