javascript - 动态创建的元素上的 addEventListener 不起作用

标签 javascript html angular typescript

我想将点击事件添加到内部 html 中的图像中。但是当我尝试添加它时,它不起作用。

模板

<div [innerHTML]="myHtml"></div>

代码

myHtml;

ngOnInit() {
    const root = document.createElement('div');
    root.innerHTML = this.getHtml();
    const images = root.getElementsByTagName('img');
    Array.prototype.forEach.call(images, (image: HTMLImageElement, i) => {
      image.addEventListener('click', (event: any) => {
        console.log('click', event);
      });
    });
    this.myHtml = root.innerHTML;
  }

这是stackblitz

最佳答案

您需要使用ngAfterViewInit()来实现这一点, 我已经修改了代码并且工作正常。

请检查链接 https://stackblitz.com/edit/angular-7da7cd

希望这有帮助。

关于javascript - 动态创建的元素上的 addEventListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54302087/

相关文章:

javascript - 每 2 秒多次运行相同的 javascript 函数

javascript - 打印时如何用PDF替换网站

javascript - 在Angular js中的ng-init中添加多维对象

Angular js 4 与 VS Code 在 powershell 中的 npm start 命令上显示错误

angular - Ionic 4 Slider 自动播放

如果在多选输入中选择了 'Other',Javascript 显示/隐藏文本字段输入

javascript - 单击菜单时设置 cookie,以便下次访问菜单打开

javascript - Firebug 不显示 ajax 请求

html - 在 div 中居中垂直列表

javascript - 如何用一个移动的三 Angular 形/矩形创建 Canvas 动画?