漂泊在外的孤独患者 2015-12-28 06:33 采纳率: 28.6%
浏览 2787

两个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();
}
};
这种方法怎么写几乎都一样,求大神指点!

  • 写回答

2条回答 默认 最新

  • 斯洛文尼亚旅游 2015-12-28 07:43
    关注

    这样添加给对象事件最后一个有效,前一个会被覆盖,用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);
    
    评论

报告相同问题?