@HostListener OnClick的外部点击在Firefox中不起作用 [英] @HostListener OnClick for outside click does not work in firefox
本文介绍了@HostListener OnClick的外部点击在Firefox中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
@HostListener OnClick在Firefox中不起作用. 我尝试了onClick,onclick和onGlobalClick.它们全都在Chrome中工作,但在Firefox中却没有人工作. 这是我的代码:
@HostListener OnClick does not work in firefox. I tried onClick, onclick and onGlobalClick. They all work in chrome but no one in firefox. Here is my code:
constructor(private elRef: ElementRef, private renderer: Renderer2) { }
@Output() offClick = new EventEmitter();
@HostListener('document:click', ['$event.path'])
public onGlobalClick(targetElementPath: Array<any>) {
const elementRefInPath = targetElementPath.find(e => e === this.elRef.nativeElement);
if (!elementRefInPath) {
this.offClick.emit(1);
}
}
推荐答案
以下是我在所有浏览器中测试过的方法,它可以正常工作:
Here is what I tested in all browsers and it works:
@HostListener('document:click', ['$event', '$event.target'])
onClick(event: MouseEvent, targetElement: HTMLElement): void {
if (!targetElement) {
return;
}
const clickedInside = this.elementRef.nativeElement.contains(targetElement);
if (!clickedInside) {
this.clickOutside.emit(event);
}
}
这篇关于@HostListener OnClick的外部点击在Firefox中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文