$event.stopPropagation()阻止事件运行,防止冒泡传递事件
用法:
ng-click="doSomeSth();$event.stopPropagation();Stop Propagation的情况下点击button你将会看见两条log记录:button和它的容器,否则只会出现button的log信息。
<!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="http://sandbox.runjs.cn/uploads/rs/376/pbcx3e1z/angular.min.js"></script> </head> <body ng-controller="demo as d"> <div ng-click="d.click('parent',$event)"> given some text for click <hr> <input type="checkbox" ng-model="d.stopPropagation"/>Stop Propagation ? <hr> <button type="button" ng-click="d.click('button2222222',$event)">button</button> <hr> <button type="button" ng-click="d.click('button1111111',$event);$event.stopPropagation();">button</button> <!-- <button type="button" ng-click="doSomeSth();$event.stopPropagation();">button</button>--> </div> <!-- Stop Propagation的情况下点击button你将会看见两条log记录:button和它的容器, 否则只会出现button的log信息。--> <script> angular.module("app", []) .controller("demo", [function () { var vm = this; vm.click = function (name, $event) { console.log(name + " -----called"); if (vm.stopPropagation) { $event.stopPropagation(); } }; return vm; }]); </script> </body> </html>《angularjs实战》