2017-09-01 46 views
1

@HostListener OnClick不能在Firefox中工作 我试过onClick,onclick和onGlobalClick。他们都工作在铬,但没有人在Fi​​refox。 这里是我的代码:@HostListener OnClick不能在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); 
    } 
} 

请帮

+0

你就不能添加(点击)=“”指示某处? – Carsten

+0

我不会全球点击“无处不在”,除了一些元素。我使用这个指令是因为当单击外部时隐藏元素,并且在按下特定元素时不隐藏它 –

+0

方法的名称不会改变内容。它被解雇了吗?你有没有登录? – Vega

回答

1

以下是我在所有浏览器测试,它的工作原理:

@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); 
     } 
    } 
+0

WooW它的工作原理,非常感谢你:) –

相关问题