2013-10-02 126 views
0

我想附加一个事件,在整个窗口(或身体)上按下Enter键,但我想保留textarea的输入事件(以获得一个新行)。选择窗口并不选择textareas?

我想是这样

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

,我试图像这样

$('*').filter(function(arg1, arg2) { !$(arg2).is('textarea').on('keydown', $.proxy(this.nextStep, this)); });但是这给了我一个错误。

谢谢。

回答

1

AFAIK,keydown事件泡沫,所以你可以将它附加到窗口而不影响textarea。

看到这个: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。 –