我有 2 個 div,一個外部和內部一個,它們都附加了 ng-click。當我嘗試單擊內部 div 時,兩個函式都會執行(我假設是因為我本質上也在單擊外部 div,因為它包含內部 div)。單擊內部div時如何防止外部div的功能執行?
<div ng-click="vm.showMoreHandler()">
<div ng-click="vm.actionHandler($event, action)"></div>
</div>
uj5u.com熱心網友回復:
您可以使用event.stopPropagation()來防止它冒泡
angular.module('myApp', [])
.controller('myCtrl', ['$scope', function($scope) {
$scope.showMoreHandler = function(e) {
console.log('showMoreHandler');
}
$scope.actionHandler = function(e) {
e.stopPropagation();
console.log('actionHandler');
}
}]);
div {
padding: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<div ng-click="showMoreHandler($event)">showMoreHandler
<div ng-click="actionHandler($event)">actionHandler</div>
</div>
</div>
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/464229.html
