问答详情
源自:3-1 DOM中的事件对象

当用兼容的方法,给同一个对象添加不同的属性时,是不是只添加前面的属性,后面的就忽略了,和DOM2级不一样啊1


一个对象调用一个函数时,函数中两个弹出,两个页面可以弹出,但在同一个对象中,属性调用多个函数,后面函数中的内容被忽略了?是代码的问题,还是原本就是这样定义的,大神救救我!

<!DOCTYPE html>
<html>
<head lang="en">
   <meta charset="UTF-8"/>
   <title>事件流的DOM时间对象</title>
</head>
<body>
<div>
   <input type="button" value="按钮1" id="btn1" onclick="message()"/>
   <input type="button" value="按钮2" id="btn2"/>
   <input type="button" value="按钮3" id="btn3"/>
</div>
<script type="text/javascript">
   //HTML级事件处理程序
function message(event)//封装一个函数,必须加
{
       alert("Hello world!");
       //alert(event.type);
}
   function message1(e)
   {
       alert(event.target);
   }
   function show(e)
   {
       alert(event.type);
   }
   var D=document.getElementById("btn3");
   //创建一个对象,对象中有两个方法
var evently={
       addhandler:function(element,type,handler)
       {
           if(element.addEventListener)//不加括号,以属性的形式判断,一般加了括号立即执行
{
               element.addEventListener(type,message,false);
           }
           else if(element.attachEvent)
           {
               element.attachEvent("on"+type,handler);
           }
           else
{
               element["on"+type]=handler;
           }
       },
       removehandler:function(element,type,handler)
       {
           if(element. removeEventListener)//不加括号,以属性的形式判断,一般加了括号立即执行
{
               element. removeEventListener(type,message,false);
           }
           else if(element.detachEvent)
           {
               element.detachEvent("on"+type,handler);
           }
           else
{
               element["on"+type]=null;
           }
       }
   }
   evently.addhandler(D,"click",message);
   evently.addhandler(D,"click",show);
   evently.addhandler(D,"click",message1);
   //evently.removehandler(D,"click",message);
</script>
</body>
</html>

提问者:qq_若相惜卟弃_3 2016-11-02 20:44

个回答

  • 慕粉4131441
    2016-11-02 21:31:16
    已采纳

    我觉得是你在定义函数时外面的参数是envent,里面的参数调用的是e,参数不同导致的,可以试试