Javascript 不一致的addEventListerner行为7
我正在使用Javascript 不一致的addEventListerner行为7,javascript,angular,addeventlistener,Javascript,Angular,Addeventlistener,我正在使用innerHTML绑定创建动态a标记,如下代码所示: <span *ngIf="msg" [innerHTML]="msg | sanitizeHtml"></span> 我得到elementselements`列表以添加事件侦听器。单击事件侦听器有时可以工作,但在大多数情况下不工作 我对这种行为感到困惑。我还尝试将代码setTimeout()括起来,但没有成功。您应该使用@HostListener来处理事件 添加条件event.target.matches(
innerHTML
绑定创建动态a
标记,如下代码所示:
<span *ngIf="msg" [innerHTML]="msg | sanitizeHtml"></span>
我得到elements
elements`列表以添加事件侦听器。单击事件侦听器有时可以工作,但在大多数情况下不工作
我对这种行为感到困惑。我还尝试将代码
setTimeout()
括起来,但没有成功。您应该使用@HostListener
来处理事件
添加条件event.target.matches('.tradebtn')
以检查元素源
@HostListener('document:click', ['$event'])
onclick(event) {
if(event.target.matches('.tradebtn')) {
console.log(event)
}
}
span
与代码有什么关系?类为tradebtn
的元素是否在querySelectorAll
运行后动态创建?类tradebtn
的元素是什么?它们是表单中的按钮吗?@JaromandaXspan
只是设置其innerHTML
的父元素。是tradebtn
是动态创建的a
标记。当我使用console.log(元素)时,我会得到所有动态创建的a
tags.OK,那么什么“不起作用”means@JaromandaX使用addEventListener
click事件,控制台中是否没有错误?如果您在开发人员工具中检查元素,它是否附加了事件处理程序?谢谢!不知道为什么我的方法行不通。
@HostListener('document:click', ['$event'])
onclick(event) {
if(event.target.matches('.tradebtn')) {
console.log(event)
}
}