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 来解决我的问题。
谢谢你的帮助。
添加回答
举报