如何仅在用户位于textarea之外时才运行JQuery代码

时间:2014-04-08 20:33:49

标签: jquery textarea blur

我想仅在用户位于textarea之外时才运行代码:

$(document).on('keydown', function(e){
    if (e.which == 37) {
        mySwiper.swipePrev();
    }
    if (e.which == 39) {
        mySwiper.swipeNext();
    }
});

这是我用来证明用户离开textarea的地方:

$('textarea').bind('blur', function() {
    $(this).css({
        'background-color':'#E18B6B'
    });
});

任何帮助都将是一种快乐。谢谢。

2 个答案:

答案 0 :(得分:1)

如果文本区域处于焦点,您可以在触发事件之前进行检查。

$("textarea").is(":focus");

扩展您的代码:

$(document).on('keydown', function(e){

    if (e.which == 37 && !$("textarea").is(":focus")) {
        mySwiper.swipePrev();
    }
    if (e.which == 39 && !$("textarea").is(":focus")) {
        mySwiper.swipeNext();
    }

});

答案 1 :(得分:1)

只需确认event.target不是textarea。

$(document).on('keydown', function(e){
    if ( $(e.target).is("textarea") ) {
        return; // exit early
    }
    if (e.which == 37) {
        mySwiper.swipePrev();
    }
    if (e.which == 39) {
        mySwiper.swipeNext();
    }

});