如何在jQuery中调用一个事件之后阻止事件重复?

时间:2011-03-30 23:52:57

标签: javascript jquery events keydown

现在,我已经知道了,你可以按左箭头键来执行一个事件(事件1)。如果在该事件之后按右箭头键,它将执行另一个事件(事件2)。

如何限制它,以便如果按下左箭头键两次,它将不会重复事件1?

现在,我有:

        $(document).keydown(function(f){
         if (f.keyCode == 39) { 
           // do event 1 here with the left arrow key
          }



      $(this).keydown(function(f){
         if (f.keyCode == 39) { 
        // do event 2 with the right arrow key
       window.location.href = "index.php";
        }

       });

我是否需要将变量设置为false,然后在事件1完成后设置为true?

2 个答案:

答案 0 :(得分:1)

在执行代码后使用$(this).unbind('keydown')删除处理程序。

PS:通常你会使用.one()方法进行一次性事件,但由于事件也会在你不想解除绑定的情况下触发(按下了不同的键),你需要手动解除绑定。

答案 1 :(得分:1)

var pressedLeft = false;
$(document).keydown(function(f){

   if ( ! pressedLeft && f.keyCode == 39) { 
     // do event 1 here with the left arrow key
     pressedLeft = true;
   }
});