當頁面加載時,應該顯示幾個不同顏色的小方塊(並且它會),當我點擊所需的方塊時,它會將整個頁面背景顏色更改爲它。但點擊不起作用。出於某種原因,頁面加載時點擊一次,所以如果我將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的任務是錯誤的呢? –