Когда страница загружается, она должна показывать несколько небольших квадратов разных цветов (и это действительно так), и когда я нажимаю нужный квадрат, он меняет цвет фона всей страницы. Но щелчок не работает. По какой-то причине клик проходит один раз, когда загружается страница, поэтому, если я прокомментирую последнюю строку в файле setbgcolor(), страница станет синей, в противном случае она останется белой, как в коде присутствующего. Щелчок после загрузки страницы ничего не делает.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;
}
Assignment указывает, что мне нужно вызвать setBgColor, и что я должен передать «this» в качестве параметра, чтобы функция узнала, какой div был вызван. Однако я понимаю, что вы имеете в виду, это похоже на Java, я должен был хотя бы об этом. Так что основное назначение тогда было неправильным? –