注意:所有代码都在这个jsFiddle中:http://jsfiddle.net/5qrkk/
我有这个代码在Javascript中注册空格
$(window).on("keydown", function(key){
if(key==32){
console.log("SPACE");
$(".sh").fadeOut(600).toggleClass("hdt").toggleClass("sh");
$(".hd").fadeIn(600).toggleClass("sht").toggleClass("hd");
$(".sht").toggleClass("sh").toggleClass("sht");
$(".hdt").toggleClass("hd").toggleClass("hdt");
}
});
if循环内部的内容使得类sh(显示)的div变为隐藏,并用hdt替换类sh(而不是立即转到hd因为仍然需要修改旧的hd类) 。当前在高清类(开始隐藏)的div也会发生同样的事情。单击空格时,这些事件(包括console.log
)都不会发生。我还想避免将它们放在$(document).ready()
函数中,因为这可能会产生错误,因为这会更改DOM并且每次运行时都需要使用更新的DOM。
答案 0 :(得分:2)
function(key) {
if(key==32){
应该是
function(e){
if(e.keyCode == 32){
传递给处理程序的参数是event
对象。
keyCode是该对象上的一个属性,它为您提供按下的键。
<强> Updated Fiddle 强>