javascript - addEventListener click executed before clicked -
i want pass on parameters in click function.
var albums = document.getelementsbyclassname("album"); for(var = 0; i<albums.length; i++){ document.getelementbyid(albums[i].id).addeventlistener("click", goalbum(albums[i].id), false); } however, function "goalbum" gets excecuted when created, , function won't excecute anymore. doing wrong?
goalbum getting executed because called function. weren't "creating" function. intended supply addeventlistener logic execute when clicked; logic being "invoke goalbum". this, wrap function call in anonymous function.
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); }); additionally, because it unwise create functions in for loop, have refactored code use foreach. need convert nodelist returned document.getelementsbyclassname array in order use foreach, hence toarray function.
Comments
Post a Comment