2 回答

TA貢獻1786條經驗 獲得超11個贊
將事件參數 (e) 添加到 mouseOver func 并使用 e.target 獲取框以設置背景
function getRandomColor() {
let letters = "0123456789ABCDEF";
let color = "#";
for (let i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
function mouseOver(e) {
let newColor = getRandomColor();
return e.target.style.backgroundColor = newColor;
}

TA貢獻1818條經驗 獲得超7個贊
我嘗試按照 ControlAltDel 的方式進行解釋,但沒有成功,我將在其他時間研究這些事件。但是,我能夠使用以下邏輯使代碼工作:
let btn = document.querySelector("#btn");
btn.onclick = function createSquare() {
let divSquare = document.createElement("div");
divSquare.setAttribute("class", "square");
divSquare.addEventListener("mouseover", function() {
let letters = "0123456789ABCDEF";
let color = "#";
for (let i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return (this.style.backgroundColor = color);
});
let container = document.querySelector("#container");
container.appendChild(divSquare);
};
#container {
display: flex;
width: 100%;
height: 100%;
flex-wrap: wrap;
}
.square {
width: 100px;
height: 100px;
background-color: red;
margin: 1px;
}
<button id="btn">Click here for create a new square</button>
<div id="container"></div>
我避免使用 querySelector 并使用 addEventListener 來解決我的問題。
謝謝你的幫助。
添加回答
舉報