是否可以仅在表单元素外部触发按键事件?
背景:我有一个代码,可以在按下右键时加载下一页。但如果有人在表单元素中使用该键,我不想触发该事件。
当前代码:
$(document).keydown(function(e){
if (e.keyCode == 37) {
var url = $('a#left').attr("href");
if (url != '') { // require a URL
window.location = url; // redirect
}
return false;
}
if (e.keyCode == 39) {
var url = $('a#right').attr("href");
if (url != '') { // require a URL
window.location = url; // redirect
}
return false;
}
});
最佳答案
如果您的表单之外还有其他字段,我希望这可能非常有用
document.onkeyup = function( ev ){
var key = ev.which || ev.keyCode ,
aID = { 37:"left", 39:"right" };
if( ! (/INPUT|TEXTAREA/i.test(ev.target)) && aID[key]) {
var url = document.getElementById( aID[key] ).getAttribute('href');
window.location = url;
}
};
关于javascript - 仅在表单元素外部触发 jquery 键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15611508/