JS函数只播放一次(直到刷新)

时间:2015-03-24 17:46:06

标签: javascript

这是我用的js:

var bgcolor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);

function changeBackground() {
   document.body.style.background = bgcolor;
}

按钮的HTML:

<button onclick="changeBackground();">

该功能有效,但是,它只能工作一次,然后在刷新页面之前不再工作。我是js的新手,有什么我可能会错过或做错吗?谢谢。

4 个答案:

答案 0 :(得分:2)

请你试试这个

JS

function changeBackground() {
   var bgcolor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
   document.body.style.background = bgcolor;
}

HTML

<button onclick="changeBackground();">

答案 1 :(得分:1)

您正在设置bgcolor变量一次,之后它永远不会改变。移动changeBackground功能中的设置,它应该有效。

function changeBackground() {
    var bgcolor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
    document.body.style.background = bgcolor;
}

答案 2 :(得分:1)

您只在函数外部为bgcolor指定一个数字。尝试在函数本身中调用该行代码,如下所示:

function changeBackground() {
    document.body.style.background = bgcolor;
    var bgcolor = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
}

答案 3 :(得分:1)

bgcolor在全局范围内,并在页面开始时计算一次。在changeBackground函数体内插入bgcolor var,以便重新计算其值。