Comment prévenir les parents événement click lorsque l'utilisateur clique sur son élément enfant? AngularJS
J'ai un <div>
avec un ng-click
mais ce <div>
ont un élément enfant avec également une ng-click
directive.
Le problème est que le événement click sur l'élément enfant déclencher aussi la cliquez sur l'événement de la élément parent.
Comment puis-je empêcher le parent événement de clic quand je clique sur son enfant?
Voici un jsfiddle pour illustrer ma situation.
Je vous remercie d'avance pour votre aide.
MODIFIER
Voici mon code:
<body ng-app ng-controller="TestController">
<div id="parent" ng-click="parentClick()">
<div id="child" ng-click="childClick()"></div>
<p ng-bind="elem"></p>
</div>
<div><p style="text-align:center" ng-bind="childElem"></p></div>
</body>
<script>
function TestController($scope) {
$scope.parentClick = function() {
$scope.elem = 'Parent';
}
var i = 1;
$scope.childClick = function() {
$scope.elem = 'Child';
$scope.childElem = 'Child event triggered x' + i;
i++;
}
}
</script>
- Soit tour de remontée d'événements off pour l'enfant de gestionnaire ou de vérifier ce qui a été cliqué dans le gestionnaire d'événements.cible / ce / yourFrameworksImplementationOfEventtarget
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser l'événement.méthode stopPropagation ().
voir: http://jsfiddle.net/qu86oxzc/3/
Utilisation
event.stopPropagation
pour arrêter leevent
de remonter l'arborescence DOM à partir d'enfant de gestionnaire d'événements.mise à Jour de la Démo
JS:
CSS:
HTML:
aussi, vous pouvez l'utiliser comme il l'utiliser à faire de même.
Même si Pieter Willaert la réponse est beaucoup plus belle j'ai mis à jour votre violon avec un simple booléen vérifier:
http://jsfiddle.net/qu86oxzc/6/
Vous pouvez également essayer
$event.stopPropagation();
. écrire après la fonction d'enfant. Il fonctionne comme un preventdefault.