繁体   English   中英

在ES6中附加模板后点击事件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM