Javascript / JQuery - 无法在特定元素上触发keydown事件

时间:2012-06-08 16:45:18

标签: javascript jquery javascript-events

我正在尝试在我的Web应用程序的某个上下文中按下Delete键时触发“keydown”事件。例如,我实现了一个在线文件系统,当该视图正在使用时,我希望keydown事件处于活动状态。

但是,当执行某些操作时,我还会在页面上显示某些弹出窗口。当这些弹出窗口可见时,我希望禁用keydown事件,因为该事件会干扰它们的功能。我目前的工作事件代码不会这样做:

$(document).keydown(function(event){
   if(event.which === 46 && ($('.selected').size() > 0)){
       saveDelete();
   }
});

有没有办法让这个keydown事件在某些条件下停止射击?

3 个答案:

答案 0 :(得分:2)

我认为你想要.length(没有括号)而不是.size()?

答案 1 :(得分:0)

  1. 将代码更改为使用.length而不是尺寸。

  2. 当您看到弹出窗口时,您可以通过调用.off取消绑定事件处理程序,当您的弹出窗口不可见或用户关闭它时,您可以再次通过调用.on重新附加关键事件,这如果您在早期版本中使用jQuery 1.7,则必须使用.bind.unbind

答案 2 :(得分:0)

我不是100%肯定,但试试这个 -

window.onkeydown(function(){
//code goes here
});