showMes 参数 event 调用时没有此参数了?

来源:3-1 DOM中的事件对象

congzijun

2016-03-05 13:45

showMes 参数是咋回事?

写回答 关注

5回答

  • 传说中的小白龙
    2016-04-20 21:52:54

    我是这样理解的,在给html元素绑定事件的时候我们如果是通过addEventLisentener函数定义的话会定义对象,事件类型以及事件处理函数。这是定义阶段,在实际使用时,我们触发了addEventLisentener函数定义条件,它就会创建一个event对象。

              var eventUtil={
              // 添加句柄
              addHandler:function(element,type,handler){
                   if(element.addEventListener){
                     element.addEventListener(type,handler,false);
                   }else if(element.attachEvent){
                     element.attachEvent('on'+type,handler);
                   }else{
                     element['on'+type]=handler;
                   }
              },
            };
            function showMes(a) {
              alert(a.value);
            }
            var btn3 = document.getElementById('btn3');
            eventUtil.addHandler(btn3,'click',showMes);

    使用讲师的代码进行说明。给btn3对象添加了一个事件,类型为click,处理函数为showMes。在浏览器中,我们点击按钮3,这时候,浏览器会创建event对象,保存了刚才我们的操作值。比如,我们这里是点击了按钮3触发了事件,那么就会保存event.type属性,也就是事件类型为click。而事件处理函数中的参数,只能是event对象,所以,不管参数设为什么值都可以,因为调用的实参就是event,一个全局变量。不过好像是用完就销毁了,我在后一行想输出event.type系统就不给予显示了。

    犀牛书上讲每个事件类型都为其相关事件对象定义一组属性。说明事件对象来源于事件类型,不同的事件类型创建的事件对象都不同,不过均有type和target两个属性。

    讲道理,我觉得是这么回事,讲错了欢迎有人指正。

  • 菲尔活该
    2016-04-17 23:42:44

    为什么.....

  • 吴双燕
    2016-04-15 20:53:40

    同问,我一直在找这个参数应该怎么传进去,有大神指导下吗?

  • 我们的洗手间
    2016-03-25 15:08:49

    同问,云里雾里。调用是明明没有传event过去,为什么function里面莫名多一个参数

  • 撞门人
    2016-03-05 16:21:00

    事件默认传入的参数

DOM事件探秘

DOM事件?本课程会通过实例来给小伙伴们讲解如何使用这些事件

99545 学习 · 1197 问题

查看课程

相似问题