Il semble que la valeur par défaut d'AngularJS empêche la propagation d'événements. Here is a test on jsfiddle.Comment autoriser la propagation d'un événement dans AngularJS?
Comme vous pouvez le voir sur le lien ci-dessus, le div
couvrant les liens empêchent l'événement à propager le div
en dessous, donc les liens ne fonctionnent pas lorsque vous cliquez dessus. Ceci est juste un cas de test, dans la situation réelle, le div
a obtenu d'autres fonctions et doit être là, donc en supprimant le div
n'est pas une option. Donc, comment faire pour que le clic de souris se propage aux liens sous div
?
Le code au cas où vous ne voulez pas cliquer sur le lien ou le lien devient lien mort un jour dans un avenir lointain. (Et pour adapter les règles de débordement de pile)
HTML
<div class="container">
<div class="unrelated">
<a href="http://stackoverflow.com">Stack overflow
</a><a href="http://www.goole.com">Google</a>
</div>
<div class="scope" ng-app="myApp" ng-controller="testing">
<div class="half-cover" ng-click="leftShow = false" ng-show="leftShow == true">
Click to remove one
</div><div class="half-cover" ng-click="rightShow = false" ng-show="rightShow == true">
Click to remove one
</div>
</div>
</div>
Javascript
var myApp = angular.module('myApp',[]);
myApp.controller('testing', ['$scope', MyCtrlFunction]);
function MyCtrlFunction($scope) {
$scope.leftShow = true;
$scope.rightShow = true;
}
CSS
.container {
position: relative;
height: 300px;
width: 500px;
background-color: white;
}
.unrelated {
position: absolute;
width: 100%;
height: 100%;
}
.unrelated a{
display: inline-block;
width: 50%;
height: 100%;
line-height: 300px;
text-align: center;
}
.scope {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
z-index: 1000;
}
.half-cover {
display: inline-block;
height: 100%;
width: 50%;
background-color: black;
color: white;
line-height: 300px;
text-align: center;
}
Comme je l'ai mentionné, la div a obtenu la fonction dans mon cas réel. Bien que vous ne l'ayez pas supprimé, faire 'z-index: -1' n'est pas correct non plus car le div perd la fonction de superposition de' div'. – cytsunny
@cytsunny vous ne pouvez pas accéder à ce qui est en dessous sinon. Et vous pouvez facilement superposer div en utilisant une approche similaire de 'ng-class' – tanmay