开发者

jquery: do this on keyup, unless the person is in a textarea or input

my script works but i don't understand how to make it NOT launch the functions when in a textarea/input and those keys are pressed. aka:开发者_开发技巧 launch the event when the user presses that key, unless the user is in a textarea/input.

$('body').keyup(function (event) {

var direction = null;
if (event.keyCode == 37) {
  $('#wrapper').fadeOut(500)
} else if (event.keyCode == 39) {
        $('html,body').animate({scrollTop: $('body').offset().top}, {duration: 1500, easing: 'easeInOutQuart'}
        )
return false;    
}
     })


Just check event.target:

$('body').keyup(function(event) {
    if ($(event.target).is(':not(input, textarea)')) {
       ...
    }
});

In this case you will still have only one event handler (attached to the body) but it will filter for elements that recieves the event


Try:

$('body *:not(textarea,input)').keyup(function (event) {

});


$('body :not(textarea,input[type=text])').keyup(function (event) {

or

$('body').not('textarea,input[type=text]').keyup(function (event) {
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜