我想仅在用户在文本区域之外时才运行代码:
$(document).on('keydown', function(e){
if (e.which == 37) {
mySwiper.swipePrev();
}
if (e.which == 39) {
mySwiper.swipeNext();
}
});
这是我用来证明用户正在离开文本区域的方法:
$('textarea').bind('blur', function() {
$(this).css({
'background-color':'#E18B6B'
});
});
任何帮助都将是一种快乐。谢谢。
您可以在触发事件之前检查文本区域是否处于焦点中。
$("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();
}
});
只需确认 event.target 不是文本区域即可。
$(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();
}
});