Javascript addEventListener单击在单击之前执行
我想在单击函数中传递参数Javascript addEventListener单击在单击之前执行,javascript,javascript-events,addeventlistener,Javascript,Javascript Events,Addeventlistener,我想在单击函数中传递参数 var albums = document.getElementsByClassName("album"); for(var i = 0; i<albums.length; i++){ document.getElementById(albums[i].id).addEventListener("click", goAlbum(albums[i].id), false); } function toArray(list) { return Arr
var albums = document.getElementsByClassName("album");
for(var i = 0; i<albums.length; i++){
document.getElementById(albums[i].id).addEventListener("click", goAlbum(albums[i].id), false);
}
function toArray(list) {
return Array.prototype.slice.call(list);
}
var albums = toArray(document.getElementsByClassName("album"));
albums.forEach(function (album) {
document.getElementById(album.id).addEventListener("click", function () {
goAlbum(album.id);
}, false);
});
var albums=document.getElementsByClassName(“album”);
for(var i=0;igoAlbum
之所以被执行,是因为您调用了该函数。您不是在“创建”一个函数。您想要做的是为addEventListener
提供逻辑,以便在单击某个内容时执行;该逻辑是“调用goAlbum
”。为此,请将函数调用包装在匿名函数中
var albums = document.getElementsByClassName("album");
for(var i = 0; i<albums.length; i++){
document.getElementById(albums[i].id).addEventListener("click", goAlbum(albums[i].id), false);
}
function toArray(list) {
return Array.prototype.slice.call(list);
}
var albums = toArray(document.getElementsByClassName("album"));
albums.forEach(function (album) {
document.getElementById(album.id).addEventListener("click", function () {
goAlbum(album.id);
}, false);
});
此外,因为我已经重构了您的代码以使用forEach
。我需要将文档.getElementsByClassName
返回的节点列表
转换为数组
,以便使用forEach
,从而实现toArray
函数
var albums = document.getElementsByClassName("album");
for(var i = 0; i<albums.length; i++){
document.getElementById(albums[i].id).addEventListener("click", goAlbum(albums[i].id), false);
}
function toArray(list) {
return Array.prototype.slice.call(list);
}
var albums = toArray(document.getElementsByClassName("album"));
albums.forEach(function (album) {
document.getElementById(album.id).addEventListener("click", function () {
goAlbum(album.id);
}, false);
});