2017-09-01 99 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它的工作原理,非常感謝你:) –

相關問題