我正在使用jQuery scrollTo插件和keydown事件来使用J和K键水平滚动窗口。这很好用,但是,我在页面上有表单输入,所以我想在输入聚焦时禁用滚动行为。我的代码如下:
// scroll left/right
$(document).keydown(function (evt) {
if (evt.keyCode == 75) {
evt.preventDefault();
$.scrollTo( '+=201px', '', { axis:'x' } );
} else if (evt.keyCode == 74) {
evt.preventDefault();
$.scrollTo( '-=201px', '', { axis:'x' } );
}
});
答案 0 :(得分:2)
您可以查看类似
的内容$(document).keydown(function (evt) {
var element = $(evt.target);
if (!element.is('input,textarea')) {
if (evt.keyCode == 75) {
evt.preventDefault();
$.scrollTo( '+=201px', '', { axis:'x' } );
} else if (evt.keyCode == 74) {
evt.preventDefault();
$.scrollTo( '-=201px', '', { axis:'x' } );
}
}
});
答案 1 :(得分:0)
您可以使用evt.target属性访问focus元素。所以下面的修改应该做的工作:
$(document).keydown(function(evt){
if(!$(evt.target).is("input")){
if (evt.keyCode == 75) {
evt.preventDefault();
$.scrollTo( '+=201px', '', { axis:'x' } );
} else if (evt.keyCode == 74) {
evt.preventDefault();
$.scrollTo( '-=201px', '', { axis:'x' } );
}
}
})