[英]Event click after append a template in Es6
我在es6中使用模板重用HTML元素。
我在template.js中的模板:
const checkbox = (id, name) => {
return `
<div class="checkbox-group">
<input class="checkbox-input-hidden" type="checkbox" name="index[]" value="${id}">
<a href="#" class="form-field-input checkbox-custom-field">
<span class="checkbox-label">${name}</span>
<span class="icon-check"></span>
</a>
</div>`;
};
export { checkbox };
现在,我有另一个负责视图的js,它具有一种呈现复选框的方法:
renderCheckbox (data) {
for(var i in data) {
this.checkboxContainer.append(
checkbox(
data[i].id,
data[i].name
)
);
}
}
如何为要添加到DOM的这些元素分配点击?
您可以先通过将HTML字符串传递给$
来创建DOM元素,然后为其分配事件侦听器,然后将其附加到容器中。
$(checkbox(data[i].id, data[i].name))
.click(() => {
// ...
})
.appendTo(this.checkboxContainer);
顺便说一句,您可以通过将其更改为for...of
并使用destructuring来简化循环。
renderCheckbox (data) {
for (const {id, name} of data) {
$(checkbox(id, name))
.click(() => {
// ...
})
.appendTo(this.checkboxContainer);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.