我有两个div,一个外部的和一个内部的,两个都有ng-click。当我试图点击内部的div时,两个函数都会执行(我这样假设是因为我实际上也在点击外部的div,因为它包含内部的div)。我怎样才能在点击内部的div时阻止外部的div函数执行呢?
<div ng-click="vm.showMoreHandler()"> <div ng-click="vm.actionHandler($event, action)"></div> </div>
dxxyhpgq1#
您可以使用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>
1条答案
按热度按时间dxxyhpgq1#
您可以使用event.stopPropagation()来防止它冒泡