【发布时间】:2020-05-10 00:17:25
【问题描述】:
我正在尝试创建歌曲播放列表。为了创建播放列表,我创建了一个名为 checklist() 的更新函数。它接收一个名为playlist 的当前播放列表中歌曲的数组参数。我还想添加一个删除按钮,它指的是播放列表中的每首歌曲。但是,以迭代方式添加 addEventListener 只会将功能添加到最后迭代的项目。我猜事件监听器每次迭代都会被覆盖,这是一个常见的错误,但我似乎无法弄清楚如何修复它。感谢您的帮助!
function checklist(playlist){
for (var i = 0; i < playlist.length; i++){
var j = i+1;
document.getElementById("list").innerHTML += '<button id="removebtn'+j+'"></button>'
document.getElementById("removebtn"+j).addEventListener("click", function () {
delete playlist[i];
console.log("deleted");
});
};
}
我已经尝试过: 如下所述解决关闭问题:JavaScript closure inside loops – simple practical example
我还尝试通过以编程方式添加代码来解决问题:Adding code to a javascript function programmatically
【问题讨论】:
-
我想你要找的是Array.splice
标签: javascript