因此,我正在构建一个由可打开的部分组成的游戏。我需要一个事件监听器来处理每一个事件。有49件。这就是我计划完成这项工作的方式:ID是box
和inventory
,+ 1
到49
。 for
循环位于页面加载时触发的函数内。一次添加多个eventlisteners
for(var i = 1; i < 50; i++){
document.getElementById("box" + "" + i).addEventListener('click', function(){
addImgBox(i);
});
}
for(var j = 1; j < 4; j++){
document.getElementById("inventory" + "" + j).addEventListener('click', function(){
addImgInv(j);
});
}
function addImgInv(j){
console.log(j);
$('#inventory' + '' + j).prepend('<img class="img" src=' + hero.inventory[j - 1].picture + ' />');
$("#theImg" + "" + j).addClass("img");
}
function addImgBox(i){
console.log(i);
$('#box' + '' + i).prepend('<img class="img" src=' + levelToPlay[i - 1].picture + ' />');
$("#theImg" + "" + i).addClass("img");
}
的问题是,哪一个框我点击,它会随时记录50
为i
或4
为j
。很明显,eventlistener
的附件不起作用。我想知道的第二件事是:即使我告诉for
循环在50
之前停止,它仍然可以达到此目的。我错过了什么,或者我应该做什么改变?
p.s.语法应该是正确的。在粘贴代码时遇到了一些麻烦。