I'm trying to make a memory game, and I have board as a multidimensional array holding picture sources. I want it so that on the div click, the photo is added. The code below does not work.
I've tried testing out to see if anything happens when the div is clicked with a console.log, but nothing comes up. The function is never run. However, running the function in the console makes it work.
function click(n, n1) {
console.log("S")
if(current == "") {
console.log(board);
console.log(board[n][n1]);
current = board[n][n1].toString();
var cols = document.getElementsByClassName('column');
for(var i = 0; i < cols.length; i++) {
if(cols[i].id == n.toString() + n1.toString()) {
console.log('yss')
cols[i].style.backgroundColor = "white";
currentImg = document.createElement("img");
currentImg.style.width = "50%";
currentImg.style.height = "auto";
currentImg.style.display = "block";
currentImg.style.margin = "0 auto";
currentImg.style.verticalAlign = "middle";
currentImg.src = board[n][n1];
cols[i].appendChild(currentImg);
}
}
}
}
<div class="row">
<div class="column" onclick="click(0,0);" id="00"></div>
<div class="column" onclick="click(0,1);" id="01"></div>
<div class="column" onclick="click(0,2);" id="02"></div>
<div class="column" onclick="click(0,3);" id="03"></div>
</div>
<div class="row">
<div class="column" onclick="click(1,0)" id="10"></div>
<div class="column" onclick="click(1,1);" id="11"></div>
<div class="column" onclick="click(1,2);" id="12"></div>
<div class="column" onclick="click(1,3);" id="13"></div>
</div>
<div class="row">
<div class="column" onclick="click(2,0);" id="20"></div>
<div class="column" onclick="click(2,1);" id="21"></div>
<div class="column" onclick="click(2,2);" id="22"></div>
<div class="column" onclick="click(2,3);" id="23"></div>
</div>
<div class="row">
<div class="column" onclick="click(3,0);" id="30"></div>
<div class="column" onclick="click(3,1);" id="31"></div>
<div class="column" onclick="click(3,2);" id="32"></div>
<div class="column" onclick="click(3,3);" id="33"></div>
</div>