I am new to angular and front end development. I have one box placed on top of another box both having their own separate click events. The box on top is blue and the one behind it is red. Whenever I click on the blue box the red box's click event also registers. Here's the code. Also please do not use event.preventDefault(); event.stopPropagation(); if you're answering as it has given me trouble in the past.
box1() {
console.log("box 1");
}
box2() {
console.log("box 2");
}
.box1{
left : 100px;
top: 100px;
width: 400px;
height: 400px;
background-color: red;
}
.box2{
position: relative;
left : 100px;
top: 100px;
width: 400px;
height: 400px;
background-color:blue;
}
<div class="container">
<div class="box1" (click)="box1()">
<div class="box2" (click)="box2()">
</div>
</div>
</div>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>
CodePudding user response:
I have reviewed your code and i have changed your css & html little bit and it works like a charm.
box.html
<div class="container">
<div class="box1" (click)="box1()"></div>
<div class="box2" (click)="box2()"></div>
</div>
box.css
.box1 {
position: fixed;
left: 100px;
top: 100px;
width: 400px;
height: 400px;
background-color: red;
z-index: 0;
}
.box2 {
position: fixed;
left: 200px;
top: 200px;
width: 400px;
height: 400px;
background-color: blue;
z-index: 999;
}
.container {
position: relative;
left: 100px;
top: 100px;
}
box.ts
box1() {
console.log("box 1");
}
box2() {
console.log("box 2");
}
working demo: https://stackblitz.com/edit/angular-ivy-rxyqcd?file=src/app/app.component.ts