【发布时间】:2017-08-15 10:54:41
【问题描述】:
我正在尝试向动态创建的 html 元素添加点击事件,目前代码如下。
let parameterLabels = document.getElementById('parameterLabels');
p_meter.classList.add('active', 'filtered');
parameterLabels.innerHTML += `
<a id="label_${parameter.name}" class="ui label transition animating scale in"
data-value=${parameter.name}>${parameter.name}<i id="remove_${parameter.name}" class="delete icon"></i></a>`;
document.getElementById(`remove_${parameter.name}`).addEventListener('click', () => {
this.removeParameter(`${parameter.name}`);
});
目前我通过 addEventListener 分配点击事件,但它只对创建的元素有效。如果我继续创建新的动态元素,那么只有最新的点击事件会起作用,而不是之前创建的元素的点击事件。有没有办法像 angular2 (click)="removeParameter($event)" 那样在 html 本身中绑定 click 事件,这对我也不起作用。有什么想法吗?
【问题讨论】:
-
我建议使用 *ngFor 来创建动态 html 元素,让 Array
说 list 并更新 list 将创建动态 html 元素.
标签: javascript angular typescript