无法在特定元素上触发键关闭事件

Can't get keydown event to fire on specific elements

本文关键字:事件 元素      更新时间:2023-09-26

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

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

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

有没有办法让这个keydown事件在特定条件下停止触发?

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

  1. 将代码更改为使用.length而不是大小。

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

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

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