问答详情
源自:2-4 IE事件处理程序及跨浏览器解决

很困惑,检查了好几遍没看出问题呢? 大神求救

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>跨浏览器问题</title>
</head>

<body>


<div id="box">
<input type="button"  value="submit1" id="btn1">
<input type="button"  value="submit2" id="btn2">

</div>
<script>
var btn1=document.getElementById('btn1');
var btn2=document.getElementById('btn2');
function showmess(){
    alert('you are my message');
    }
var eventUtil={
    addHandler:function(element,type,handler){
    //DOM2 处理程序的方法
    if(element.addEventListener){
        element.addEventListener(type,handler,false);
        }
        //IE 处理程序方法  
    else if(element.attachEvent){
        element.attachEvent('on'+type,handler);
        }
        //DOM0处理事件程序判断
    else{
        element['on'+type]=handler;//触发handler操作
        }
    }
}


//删除句柄
removeHandler:function(element,type,handler){
    if(element.removeEventListener){
        element.removeEventListener(type,handler,false);
        }
        //IE事件处理程序
    else if(element.detachEvent){
        element.detachEvent('on'+type,handler);
        }
    else{
        element['on'+type]=null;
        }
    }
eventUtil.addHandler(btn2,'click',showmess);
    
</script>


</body>
</html>

提问者:linapursue 2015-05-28 20:16

个回答

  • 慕移动9181930
    2022-03-23 08:19:47

    天天都有更新backgroundColorbackground

  • zoe0773
    2015-10-22 16:09:43

     eventUtil 是以对象字面量的方法封装的数据,所以两个方法是应该封装到整个对象里的。第一个完整的方法的大括号后面应该用逗号分隔,最后一个完整的方法后面不需要逗号。

    eventUtil.addHandler(btn2,'click',showmess);这个是在外部作用域中调用。

  • 小不点不小
    2015-05-28 21:58:51

    removeHandler:前面的大括号放错位置了,应该在eventUtil.addHandler(btn2,'click',showmess);前面,还有removeHandler:前面的大括号后面需要加逗号

  • 武林高手
    2015-05-28 20:41:20

    你这个用来做什么啊,想实现什么功能啊?