2013-10-02 1 views
0

Я хочу добавить событие для нажатия клавиши ввода на все окно (или тело), ​​но я хочу сохранить событие ввода для textarea (чтобы получить новую строку).Выберите окно и не выбирайте текстовые области?

Я пытался что-то вроде

$(window).not(':textarea') , $('body:not(textarea)') 

И я пытался что-то вроде этого

$('*').filter(function(arg1, arg2) { !$(arg2).is('textarea').on('keydown', $.proxy(this.nextStep, this)); });, но это дало мне ошибку.

Спасибо.

ответ

1

AFAIK, пузырь событий события, так что вы можете прикрепить его к окну, не затрагивая текстовое поле.

Смотреть это: http://jsfiddle.net/aCTTq/

Хотя если вы запускаете preventDefault на объекте события в обработчике вы будете иметь проблемы. В этом случае попробуйте что-то вроде:

$(window).keydown(function(e) { 
    console.log(e.which); 
    if (e.target.nodeName != 'TEXTAREA') { 
     e.preventDefault(); 
    } 
}); 

Demo: http://jsfiddle.net/aCTTq/1/

+0

Работы на Chrome и FF. –

Смежные вопросы