简体   繁体   中英

How to click an html box without registering the click event of the box behind it?

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>

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM