@HostListener OnClick for outside click在firefox中不起作用

Dat*_*dze 4 javascript firefox onclick typescript angular

@HostListener OnClick在firefox中不起作用.我试过onClick,onclick和onGlobalClick.他们都使用chrome,但在firefox中没有人.这是我的代码:

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

Veg*_*ega 6

这是我在所有浏览器中测试过的,它的工作原理如下:

 @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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 哇它的工作原理,非常感谢你:) (2认同)
  • @Vega你刚刚保存了我的da,非常感谢:) (2认同)