Горячие клавиши jQuery… не такие глобальные

По сути, я использую плагин jQuery Hotkeys от Mr 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[contains the whole page]

NB:Вы можете попробовать это здесь .

9
задан Christian 1 May 2012 в 18:24
поделиться