按键上的奇怪的console.log行为

时间:2012-07-25 09:13:07

标签: console keypress

如果按{esc'导致keyPressed事件为27,则会console.log("ESCY");loopcnt次,与 loopcnt = 0; var fps = 22; var interval = 1000 / fps; function draw() { setTimeout(function() { if (willAnimate) { window.requestAnimationFrame(draw); console.log("Framecnt: "+ loopcnt); loopcnt++; } IndexJSON.each(function(key, value){ IndexOBJECT[key].render(); }); $(window).delegate('body', 'keydown', function(event){ keyPressed = event.which; if (keyPressed == 27) { willAnimate = false; console.log("ESCY"); } }); }, interval); }; willAnimate = true; draw(); var一样多次出现

console.log

如果你问我,那就没有逻辑意义......

好像它正在缓冲所有if s,直到setTimeout语句为真..

知道为什么会这样吗?

(另一个问题:我尝试用return取消return函数,但它不会终止函数,可能是因为{{1}}只会从if语句返回,但是有没有办法从外部终止该功能?)

1 个答案:

答案 0 :(得分:0)

好的,显然当我将.delegate移到setTimeout()之外;它不会多次触发if语句。

而且,我现在意识到,每次循环循环时我都会绑定密钥,因此当我按下键时它会触发所有绑定..

现在很明显我想到了......