私はオープン可能な部分で構成されるゲームを構築しています。私はそれぞれのイベントリスナーが必要です。 49個あります。これは私がこれを達成する方法です:IDはbox
とinventory
,+ 1
から49
です。 for
ループは、ページの読み込み時に起動する関数の内部にあります。複数のイベントリスナーを一度に追加する
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");
}
問題は、それが常にi
またはj
ため4
ため50
をログに記録し、いずれかのボックス私はをクリックしていることです。明らかにeventlistener
の添付が機能していません。私が疑問に思っているもう一つのことは、50
の前にループを停止するようにfor
と言っていますが、それでもそれは起こります。私は何が不足しているのですか?何が違うのでしょうか?
p.s.構文は正しいはずです。コードを貼り付けるのにいくつかの問題がありました。