以下 jQuery 在 for 循环中:
$(document).one('keydown',function(e) {
if( e.which === 90 && leftPosition + 50 <= maxHeight) {
var newLeftPosition = (leftPosition + 1) + 'px';
$("#leftPaddle").css({top:newLeftPosition});
}
});
对于每次迭代,如果按下 z 键,它应该触发一次。它第一次触发,但不会再次触发,除非您在循环完成后重新启动循环。我最初有以下内容,它也只触发了一次:
$(document).keydown(function(e){
if(e.which === 90 && leftPosition + 50 <= maxHeight) {
var newLeftPosition = (leftPosition + 1) + 'px';
$("#leftPaddle").css({top:newLeftPosition});
}
});
第二个片段的缺点,除了它也只触发一次之外,它会停止循环,直到不再按下该键。
变量 leftPosition 设置在 for 循环中,并且应该更新每次迭代。它的声明和初始化如下:
var leftPosition = $("#leftPaddle").position().top;
#leftPaddle 的 CSS 如下:
#leftPaddle {
position:absolute;
left:0;
top:0;
width:8px;
height:48px;
background-color:#BADA55;
border:1px solid #000;
}
小提琴,看看它在行动。
- 奖励酷点。如果我创建一个无限循环,jsFiddle 无法加载并冻结浏览器。这是一个小提琴问题吗?