AngularJs中给方法传入js对象,或者阻止冒泡和默认行为方法传入$event对象。
html代码:
<!DOCTYPE html> <html id="ng-app" ng-app="app"> <head> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js"></script> <meta charset="utf-8"> <title>$event</title> </head> <body ng-controller="myCtrl"> <ul> <li ui-sref="{{item.url}}" ng-repeat="item in menu" ng-click="addClickClass($event)">{{item.name}}</li> </ul> </body> </html>
js代码:
angular.module("app",[]) .controller("myCtrl",['$scope', function($scope){ $scope.menuData = [{ name : "市场", url : "index.market" },{ name : "魔方", url : "index.mofang" },{ name : "节目", url : "index.tv" },{ name : "APP下载", url : "index.download" }]; scope.addClickClass = function($event){ //阻止冒泡 $event.stopPropagation(); //阻止浏览器默认事件 $event.preventDefault(); //$event.currentTarget代表当前点击的js对象 var $obj = angular.element($event.currentTarget); angular.forEach($obj.parent("ul").find("li"), function(value, key) { if(value === $event.currentTarget){ angular.element(value).addClass('current'); }else{ angular.element(value).removeClass('current'); } }); } }]);