javascript - 在 jQuery 中已经对事件进行了一次调用后,如何防止事件重复发生?

标签 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";
        }

       });

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

最佳答案

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

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

关于javascript - 在 jQuery 中已经对事件进行了一次调用后,如何防止事件重复发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5493826/

相关文章:

javascript - .class 样式到 .class B 样式可以很容易地制作动画吗?

jquery - 手动覆盖DataTable的Language.infoFiltered

javascript - 为我认为我定义的数组获取 Uncaught ReferenceError

javascript - Bootstrap 模式委托(delegate)事件类型语法

actionscript-3 - AS3 mouseChildren = false 将事件监听器添加到子级

javascript - jQuery 对象上的事件处理程序

javascript - 填充贝塞尔曲线 SVG

javascript - 水线包含关联属性?

javascript - 具有惰性评估的自引用数组

javascript - 如何在ajax响应后重绘数据表