我在chrome扩展中有这个for循环,它基于api
创建图像元素for (var i = 0; i <= 2; i++) {
//a
var a = document.createElement("a");
//a.setAttribute("href", "embed.html");
a.setAttribute("id", "image"+i);
//img
var img = document.createElement("img");
img.setAttribute("width", "192");
img.setAttribute("height", "108");
img.src = resp.videos[i].thumbnail;
var src = document.getElementById("disp");
img.addEventListener("click", handleClick(i));
a.appendChild(img);
src.appendChild(a);
}
这个由事件监听器调用的函数
function handleClick(id) {
chrome.storage.sync.set({'id': id}, function() {
console.log(id);
});
chrome.storage.sync.set({'pathName': pathName}, function() {
console.log(pathName);
});
}
但当其中一个被按下时,所有这些功能都会被执行,因此它最终会将最后一个保存到本地存储。
如何让事件监听器只运行被按下的事件?