jQuery热键……不那么全球化

前端之家收集整理的这篇文章主要介绍了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;
}

猜你在找的jQuery相关文章