Keydown只运行一次代码

Keydown only runs code once

本文关键字:一次 代码 运行 Keydown      更新时间:2023-09-26

所以我有一个脚本,生成十六进制代码,并改变背景。下面是代码

$(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;
    }
  });
});

问题是,当我按空格时,它只改变颜色一次,我将无法再次按空格来生成另一种颜色,而不重新加载页面。这里有一个演示。什么好主意吗?

禁止使用document.write

会删除你的脚本,所以你应该把它添加到body:

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

或添加一个span并设置其文本:

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

更新JSBIN

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);

              }
            }); 
    });