我正在将onlick事件动态添加到一系列锚点元素。对于每个锚元素,我需要使用变量形式的不同参数值。在循环中使用以下事件侦听器时:
anchor.addEventListener("click", () => { task(title, author) });
每个锚元素的onclick的 title
和author
最终都是相同的(它们在上一次迭代时都是title
和author
的值)。我希望它们在循环的特定迭代中表示变量的值。这是一个最小的工作代码示例:
for (obj of objTasks) {
title = obj.title;
author = obj.author;
var anchor = document.createElement("a");
anchor.addEventListener("click", () => { task(title, author) });
}
答案 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) });
}