我基本上是在使用 jQuery Hotkeys 插件(由 Resig 先生编写)来捕获和处理快捷键,例如 ctrl+o
等...
好的,也许我没有理解这个概念,但我的印象是,在文档中的任何地方触发的 ctrl+o
快捷键都将被文档快捷键处理程序捕获。
例如,下面的代码通常是有效的...
jQuery(document).bind('keydown', 'ctrl+o', fn);
然而,如果用户在输入框中触发快捷键,则它会失败地执行。
只有按照以下步骤才能正常工作:
jQuery('body, input').bind('keydown', 'ctrl+o', fn);
这对我的健康非常不利,因为每次向DOM添加新的输入框时都需要绑定该可恶的处理程序。更糟糕的是,在像CodeMirror这样复杂的小部件中,我不知道要绑定到什么。不确定我的问题是否有意义,也许我使用了错误的方法?我还尝试将处理程序绑定到以下对象,但它们没有起作用:window
、document
、body
和包含整个页面的div
。
NB: 您可以在此处尝试。
on()
?这样它就可以与添加的每个输入一起工作。或者我漏掉了什么? - Rene Potctrl+s
会产生与在Netbeans项目列表中执行相同的效果(以此为例)。 - Christian.children()
或其他任何 jQuery 选择器都是作用于已存在的元素,而不是未来可能添加的元素。我需要全局热键,而不是每次 DOM 改变时都绑定事件。 - Christian