1. ホーム
  2. angularjs

[解決済み】ng-clickから元の要素を取得する。

2022-04-20 19:12:52

質問

ビューのアイテムリストに 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 が束縛されている場合、ディレクティブの中で DOM 操作をする必要はないのでしょうか?

どのように解決するのですか?

必要なものは $event.currentTarget の代わりに $event.target .