jQuery热键……不那么全球化

基本上,我正在使用Resig先生的 jQuery Hotkeys plugin来捕获和处理像ctrl o等的快捷方式……

好吧,也许我不理解这个概念,但我的印象是,文档内部任何地方触发的控件都会被文档热键处理程序捕获.

例如,以下代码一般工作…

jQuery(document).bind('keydown','ctrl+o',fn);

但是,如果用户在输入框内触发热键,则会失败.

它只适用于我执行以下操作:

jQuery('body,input').bind('keydown',fn);

这对我的健康非常不利,因为它涉及每次在DOM中添加新输入框时绑定该死的处理程序.更糟糕的是,在CodeMirror等复杂小部件的情况下,我不知道要绑定什么.

Dunno,如果我的问题有道理,也许我使用了错误方法?我也尝试绑定到以下对象,但它不起作用:窗口,文档,正文,div [包含整个页面]

NB:你可以try it out here.

解决方法

这实际上是插件的预期功能
// Don't fire in text-accepting inputs that we didn't directly bind to
if ( this !== event.target && (/textarea|select/i.test( event.target.nodeName ) ||
    event.target.type === "text") ) {
    return;
}

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...