开发者社区 问答 正文

两个js都用到了enter事件的监听突然发现有冲突,怎么解决?

第一次遇到这样的问题:
我在头部页面上的搜索上用到了enter事件的监听,但是在其它页面中也有一个页面
用到了这个事件,我是分别写在两个js中的。但是,并不是enter事件,另一个是
esc 的触发事件。
然而在操作过程中,发现,只要两个页面碰到一起,就会出现:搜索按钮的enter事件
失灵,而ESC事件却能用。求解如何解决这一冲突问题,当在一个页面时都可以触发。
下面是function:

/**ENTER 事件触发搜索**/
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e && e.keyCode==13){ // enter 键
search();
}
};

这种方法怎么写几乎都一样,求大神指点!

展开
收起
吴孟桥 2016-06-03 11:14:11 3213 分享 版权
1 条回答
写回答
取消 提交回答
  • 这样添加给对象事件最后一个有效,前一个会被覆盖,用attachEvent(IE)或者addEventListener进行添加。。不要使用xxx.onxxxx

       function docKeydown(event) {
            var e = event || window.event || arguments.callee.caller.arguments[0];
            if (e && e.keyCode == 13) { // enter 键
                search();
            }
        };
        document.attachEvent ? document.attachEvent('onkeydown', document) : document.addEventListener('keydown', docKeydown, false);
    2019-07-17 19:26:21
    赞同 展开评论