如何通过更改参数向onclick事件动态添加功能?

时间:2019-03-24 05:30:26

标签: javascript events parameters

我正在将onlick事件动态添加到一系列锚点元素。对于每个锚元素,我需要使用变量形式的不同参数值。在循环中使用以下事件侦听器时:

anchor.addEventListener("click", () => { task(title, author) });
每个锚元素的onclick的

titleauthor最终都是相同的(它们在上一次迭代时都是titleauthor的值)。我希望它们在循环的特定迭代中表示变量的值。这是一个最小的工作代码示例:

for (obj of objTasks) {
    title = obj.title;
    author = obj.author;

    var anchor = document.createElement("a");

    anchor.addEventListener("click", () => { task(title, author) });
}

1 个答案:

答案 0 :(得分:0)

您要全局声明变量-使用let是因为它是基于块的(var是函数范围的):

for (let obj of objTasks) {
    let title = obj.title;
    let author = obj.author;
    let anchor = document.createElement("a");
    anchor.addEventListener("click", () => { task(title, author) });
}