gpt4 book ai didi

javascript - 在使用 onClick() 之前,如何保持 onClickOutside() 方法处于禁用状态?

转载 作者:行者123 更新时间:2023-12-03 00:14:03 26 4
gpt4 key购买 nike

当我用事件监听器点击我的元素时,我应该显示我的弹出窗口,在我引入 onClickOutside() 之前它工作得很好。使用ng-click-outside

export class Component {
private isPopupDisplayed: boolean = false;

onClick() {
console.log('Clicked');
this.isPopupDisplayed = true;
}

onClickedOutside(event) {
this.isPopupDisplayed = false;
}

}
.popup{
position: absolute;
z-index: 3;
width: 200px;
height: 94px;
background-color: $secondary-color;
left: 0%;
bottom: 0%;
padding: 15px 0px;
margin: 12px;
border: 1px solid $modal-border-color;
border-radius: 4px;
box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.25);

li:hover {
background-color: $accent-color;
}

li {
padding-top: 5px;
height: 32px;
}
}
<div *ngIf="isPopupDisplayed" >
<ul class="popup" (clickOutside)="onClickedOutside($event)">
<li><a>My Details</a></li>
<li><a>Sign out</a></li>
</ul>
</div>

<div class="presenter-menu_avatar" (click)="onClick()" >
<img [src]="avatarUrl">
</div>

当我尝试引入 onClickOutside() 方法时,我可以看到这两种方法同时触发,因为我的弹出窗口仍然不存在,并且自动触发甚至不显示它。

我的目标是在 onClick() 时简单地显示弹出窗口,并在在弹出窗口之外单击时隐藏它。

最佳答案

在点击函数中添加stopPropagation事件

  onClick(event) {
event.stopPropagation()
console.log('Clicked');
this.isPopupDisplayed = true;
}




<div class="presenter-menu_avatar" (click)="onClick($event)" >
<img [src]="avatarUrl">
</div>

关于javascript - 在使用 onClick() 之前,如何保持 onClickOutside() 方法处于禁用状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598227/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com