选择窗口,不要选择textareas?

时间:2013-10-02 15:06:15

标签: javascript jquery

我想附加一个事件来按下整个窗口(或正文)上的回车键,但我想保留textarea的enter事件(以获得一个新行)。

我试过像

这样的东西
$(window).not(':textarea') , $('body:not(textarea)') 

我试过这样的事情

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

谢谢。

1 个答案:

答案 0 :(得分: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/