[英]Ignore div click if click was on button inside div
我有一个带有按钮的div,它使div最小化。 如果单击div内的其他任何位置,它将加载有关div的详细信息。 但是,如果最小化div,我不想加载详细信息。 这是我的代码:
<div (click)="showDetails(key)" *ngFor="let key of keys">
<button (click)="minimize(key)">Minimize</button>
<span>The rest of the content is here</span>
</div>
触发最小化后,我想忽略showDetails。
我目前无法测试,但是您可以尝试的是
(click)="minimize(key, $event)"
在你的组件中
minimize(key, event) {
event.preventDefault();
event.stopPropagation();
}
尝试其中任何一个,看看效果如何!
您要做的是通过使用stopPropagation()
停止事件的传播来忽略父click事件。
html代码:
<div (click)="showDetails(key)" *ngFor="let key of keys">
<button (click)="minimize(key,$event)">Minimize</button>
<span>The rest of the content is here</span>
</div>
ts代码:
minimize(key,event){
event.stopPropagation();
}
使用event.stopPropagation()来防止click事件使DOM冒泡。
我在这里所做的工作非常简单,您无需创建函数/方法。
<div (click)="showDetails(key)" *ngFor="let key of keys">
<button (click)="$event.stopPropagation()">Minimize</button>
<span>The rest of the content is here</span>
</div>
希望这可以帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.