Keydown只运行一次代码

时间:2014-06-13 17:31:40

标签: javascript jquery html

所以我有一个生成十六进制代码的脚本,并更改​​背景。这是代码

$(document).ready(function() {
$(document).keydown(function(e) {
  if (e.keyCode == '32') { 
     var color = "#" + Math.random().toString(16).slice(2, 8);
      document.write(color);
      document.body.style.backgroundColor = color;

    }
  });
});

问题是,当我按空格键时,它只会改变颜色一次,并且我无法再次按空格键以生成另一种颜色而无需重新加载页面。 Here's一个演示。有任何想法吗?

2 个答案:

答案 0 :(得分:3)

请勿使用document.write

它将擦除您的脚本,因此您应该将其附加到正文中:

$(document.body).append(color);
document.body.style.backgroundColor = color;

或添加范围并设置其文字:

$("span").text(color);

UPDATED JSBIN

答案 1 :(得分:0)

http://jsfiddle.net/EVjaH/

$(document).ready(function(){

    $('body').on('keydown',function(e) {
              if (e.which == '32') {

                var color = "#" + Math.random().toString(16).slice(2, 8);
                $('body').css('background',color);


              }
            }); 

    });