[英]Inconsistent addEventListerner behaviour angular 7
我使用innerHTML
結合創建動態a
標簽,如下面的代碼:
<span *ngIf="msg" [innerHTML]="msg | sanitizeHtml"></span>
在.ts中,我嘗試使用addEventListerner
添加click事件:
ngAfterViewInit() {
this.elements = this.elem.nativeElement.querySelectorAll('.tradebtn');
if (this.elements && this.elements.length > 0) {
this.elements.forEach((f) => {
console.log(f)
f.addEventListener('click', (event) => {
console.log(event)
});
});
}
}
我得到elements
元素列表以添加事件偵聽器。 Click事件偵聽器有時可以運行,但在大多數情況下不起作用。
我對這種行為感到困惑。 我也嘗試將代碼setTimeout()
括起來,但是沒有運氣。
您應該使用@HostListener
來處理事件。
添加條件event.target.matches('.tradebtn')
來檢查元素來源。
@HostListener('document:click', ['$event'])
onclick(event) {
if(event.target.matches('.tradebtn')) {
console.log(event)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.