AnotherDeveloper
AnotherDeveloper

Reputation: 1272

Get event information using angularjs

I am trying to track button clicks a user performs on a page/view. I am trying to get the element idwhich was clicked.

Is there a way to do this without having to tie a function or directive to each element?

Upvotes: 0

Views: 60

Answers (1)

tasseKATT
tasseKATT

Reputation: 38490

ng-controller and ng-click

HTML:

<body ng-controller="MyController" ng-click="go($event)">
  <div id="box1">
    <div id="box2">
      <div id="box3"></div>
    </div>
  </div>
</body>

JS:

$scope.go = function(e) {
  var clickedElement = e.target;
  console.log(clickedElement);
  console.log(clickedElement.id);
};

Demo: http://plnkr.co/edit/1O6pCVrvgu7Bl8b6TlPF?p=preview

Directive:

HTML:

<body my-directive>
  <div id="box1">
    <div id="box2">
      <div id="box3"></div>
    </div>
  </div>
</body>

JS:

app.directive('myDirective', function () {

  return {
    link: function (scope, element, attrs) {

      element.bind('click', function (e) {
        var clickedElement = e.target;
        console.log(clickedElement);
        console.log(clickedElement.id);
      });
    }
  }
});

Demo: http://plnkr.co/edit/eevnMFu2YBj3QqRraeZh?p=preview

Upvotes: 1

Related Questions