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

两个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条回答 默认 最新

  • Go 旅城通票 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);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥50 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗