Witam, mam następujący kod:
window.onload = addEvent;
function addEvent()
{
for(i=0;i<=9;i++)
{
var div = document.getElementById(`button${i}`);
div.addEventListener("click", function()
{
var text = document.createTextNode(i);
console.log(i);
document.getElementById("output").appendChild(text);
});
}
}
i wszystko działa poza tym, że zmienna i jest zawsze równa 10 dla console.log oraz createTextNode. Dlaczego tak się dzieje?
Mam również pytanie odnośnie kodu:
window.onload = addEvent;
function addEvent()
{
for(i=0;i<=9;i++)
{
var div = document.getElementById(`button${i}`);
div.addEventListener("click", button(i));
}
}
function button(number)
{
var text = document.createTextNode(number);
switch(number)
{
case 0:
console.log(number);
break;
case 1:
console.log(number);
break;
case 2:
console.log(number);
break;
case 3:
console.log(number);
break;
case 4:
console.log(number);
break;
case 5:
console.log(number);
break;
case 6:
console.log(number);
break;
case 7:
console.log(number);
break;
case 8:
console.log(number);
break;
case 9:
console.log(number);
break;
}
document.getElementById("output").appendChild(text);
}
w którym wszystko wywołuje się od razu, a na kliknięcie nie reaguje. Dlaczego tak się dzieje?