当页面加载时,应该显示几个不同颜色的小方块(并且它会),当我点击所需的方块时,它会将整个页面背景颜色更改为它。但点击不起作用。出于某种原因,页面加载时点击一次,所以如果我将setbgcolor()中的最后一行注释掉,页面将变为蓝色,否则它将保持白色,就像在presant代码中一样。在页面加载后单击不执行任何操作。JS - EventListener点击无法正常工作
var colorArr = ["Red", "Orange", "Yellow", "Green", "Teal", "Blue", "Purple", "Grey"];
for(var i=0; i<colorArr.length; i++){
var div = document.createElement('div');
div.style.backgroundColor = colorArr[i];
div.setAttribute('class', 'palette');
div.addEventListener("click", setBgColor(div));
document.getElementById('palette-div').appendChild(div);
}
function setBgColor(clickedDiv) {
var bgColor = clickedDiv.style.backgroundColor;
document.body.style.backgroundColor = "blue";
document.body.style.backgroundColor = bgColor;
}
赋值状态,我需要调用setBgColor,我应该通过'this'作为参数,以便该函数知道哪个div被调用。不过,我明白你的意思,就像在Java中,我应该尽管这一点。那么basiclly的任务是错误的呢? –