Я хочу привязать событие для нажатия клавиши ввода на все окно (или тело), но я хочу сохранить событие ввода для textarea (чтобы получить новую строку).
Я попробовал что-то вроде
$(window).not(':textarea') , $('body:not(textarea)')
И я попробовал что-то вроде этого
$('*').filter(function(arg1, arg2) { !$(arg2).is('textarea').on('keydown', $.proxy(this.nextStep, this)); });
но это дало мне ошибку.
Благодарю.
AFAIK, пузыри событий keydown, поэтому вы можете прикрепить его к окну, не затрагивая текстовое поле.
Смотрите это: http://jsfiddle.net/aCTTq/
Хотя если вы запустите preventDefault
для объекта события в обработчике, у вас возникнет проблема. В этом случае попробуйте что-то вроде:
$(window).keydown(function(e) {
console.log(e.which);
if ( e.target.nodeName != 'TEXTAREA' ) {
e.preventDefault();
}
});