2013-10-02 54 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。 –