Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度下降和焦点事件同时触发_Javascript_Angular_Event Handling_Dom Events - Fatal编程技术网

Javascript 角度下降和焦点事件同时触发

Javascript 角度下降和焦点事件同时触发,javascript,angular,event-handling,dom-events,Javascript,Angular,Event Handling,Dom Events,我正在使用Angular 10并在我的AppComponent上注册了一个drop事件 同一组件还有一个focus事件,当将目录拖到Browser窗口上时,两个事件都会触发 有没有办法专门区分下降或聚焦事件 @HostListener("window:focus", ["$event"]) onFocus(event: any): void { console.log("window:focus"); } @HostListe

我正在使用Angular 10并在我的
AppComponent
上注册了一个
drop
事件

同一组件还有一个
focus
事件,当将目录拖到Browser窗口上时,两个事件都会触发

有没有办法专门区分
下降
聚焦
事件

@HostListener("window:focus", ["$event"])
onFocus(event: any): void {
    console.log("window:focus");
}

@HostListener("drop", ["$event"])
onDrop($event: any) {
    console.log("drop");
}
输出:

focus <-- 1: shouldn't happen on drop
focus <-- 2: shouldn't happen on drop
drop
focus试试这个

focusDet: boolean = false;


我也这么想,但这是“官方”解决办法吗?
@HostListener("drop", ["$event"])
onDrop($event: any) {
    this.focusDet = true;
    console.log("drop");
}

@HostListener("window:focus", ["$event"])
onFocus(event: any): void {
    if(!this.focusDet){
      console.log("window:focus");            
    }
}