javascript - 在纯 Javascript 中每次单击都会更改背景颜色

标签 javascript events random colors click

我正在尝试用 Javascript 制作一个按钮,单击该按钮会将背景颜色更改为随机颜色。

我的代码在第一次点击时运行良好,但在后续点击时不起作用。

在没有任何 jquery 的情况下,我该怎么做才能在纯 javascript 中修复此问题。谢谢!

var buton=document.getElementById("buton");
var randcol= "";
var allchar="0123456789ABCDEF";

buton.addEventListener("click",myFun);

function myFun(){

for(var i=0; i<6; i++){
   randcol += allchar[Math.floor(Math.random()*16)];
}
document.body.style.backgroundColor= "#"+randcol;
}

最佳答案

问题是您在执行后没有重置 randcol。您不断添加到以前的值,因此第一次它是一个有效的颜色代码,但下一次它不是一个有效的颜色代码。

因此,在执行for 循环之前,将randcol 重置为空字符串

var buton=document.getElementById("buton");
var allchar="0123456789ABCDEF";

buton.addEventListener("click",myFun);

function myFun(){
  var  randcol= "";
for(var i=0; i<6; i++){
   randcol += allchar[Math.floor(Math.random()*16)];
}
document.body.style.backgroundColor= "#"+randcol;
}
<button id="buton">click me</button>

关于javascript - 在纯 Javascript 中每次单击都会更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41373407/

相关文章:

javascript - jQuery weekcalendar 在 Firefox 中正确显示,但在 Chrome/Safari 中无法正确显示(仅在 iOS/OSX 设备上)

javascript - HTML/Javascript 页面中 JSON 结果的分页

javascript - 如何从事件中获取返回值?

laravel 随机调度命令

java - 如何随机分配数组的所有元素?

Python - 获得随机颜色,尽可能快地给定种子数

javascript - 隐藏/显示 ngFor 内的单个或特定按钮

javascript - 阻止用户在登录失败时读取 javascript 数据和文件

amazon-web-services - 可扩展的事件调度程序,可容纳数十万个事件

delphi - Delphi 中的事件如何工作?