2017-09-12 23 views
0

我正在研究角度模態窗口,當我打開模態窗口並在模態窗口(陰影背景)之外單擊時,我總是得到該div元素的錯誤類別。點擊多個div,但只顯示一個類(Angular2)?

例子:我點擊模態和模式類似乎這是確定的,當我點擊的陰影背景模式類再次出現,爲什麼呢?應該出現另一個班級。

這裏是代碼(打字稿文件):

@ViewChild('ova') ova; //accessing the div via refference tag in html 
@HostListener('document:click') onClick($event){ 
    if (this.show) 
    console.log("display event: "+ this.ova.nativeElement.className) 

以下是相應的.html文件:

<div class="modalall"> 
     <div *ngIf="closeIt" (click)="close()"n class="modalclose">x</div> 
     <div #ova class="modal"> 
     some text 
     </div> 
</div> 
+0

你爲什麼要上課?我想當你打開一個模式時,有一個包含模態的div,所以當你點擊你在兩個時間都得到這個div。 因此,也許你第一次得到錯誤的類,而不是第二個 –

+0

你的模態的CSS是什麼? – Wandrille

+1

要完成@Wandrille的請求,可以做出正常工作嗎?我的猜測是你的z-index正在搞亂你的點擊。 – trichetriche

回答

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); 
     } 
    }