我写了一段代码,所以提示会出现一个提示颜色的提示,并使用一个循环,它会一直询问并不断更改颜色,直到给出一个空字符串。如果取出循环,它会改变颜色但是在背景中添加循环时,颜色不会改变。是否存在我遗漏的逻辑错误?
let empty=false;
while(empty===false){
const colour= prompt("Give me a colour");
document.body.style.backgroundColor=colour;
if(colour===""){
empty=true;
}
}
答案 0 :(得分:3)
JavaScript阻止重新绘制文档。
直到JS完成(直到colour
为""
之前它才会完成),浏览器没有机会更新显示以反映您对DOM所做的更改。
您无法使用while
循环。改为使用setTimeout
代替。
function update_background() {
const colour = prompt("Give me a colour");
document.body.style.backgroundColor=colour;
if (colour) {
setTimeout(update_background);
}
}
update_background();