Выберите окно и не выбирайте текстовые поля?

0

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

Я попробовал что-то вроде

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

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

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

Благодарю.

Теги:

1 ответ

1
Лучший ответ

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

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

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

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

Демо: http://jsfiddle.net/aCTTq/1/

  • 0
    Работает на Chrome и FF.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню