javascript - 仅在表单元素外部触发 jquery 键事件

标签 javascript jquery

是否可以仅在表单元素外部触发按键事件?

背景:我有一个代码,可以在按下右键时加载下一页。但如果有人在表单元素中使用该键,我不想触发该事件。

当前代码:

$(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;
    }
});

最佳答案

如果您的表单之外还有其他字段,我希望这可能非常有用

LIVE DEMO

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/

相关文章:

Javascript 函数在模糊或 onclick 上不起作用

javascript - 使用 .data() 的 jquery 插件对象配置

javascript - 如何让函数改变 JavaScript 中放入其中的变量?

javascript - 通过检查 jQuery 对象获取 jQuery 版本

javascript - 是否可以使用没有 View 状态和回发的 ASP.NET Web 表单

javascript - 制作井字游戏,无法制作 'x'

javascript - 有没有办法在我的 html 页面上执行 JavaScript/JQuery 函数指定的时间然后停止执行?

javascript - 悬停功能

jquery - 使用 jQuery append 列表与站点的其余部分冲突

jquery - 在单个请求中下载多个文件 (jQuery/Python)