为了账号安全,请及时绑定邮箱和手机立即绑定

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

showMes 参数是咋回事?

正在回答

5 回答

我是这样理解的,在给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两个属性。

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

3 回复 有任何疑惑可以回复我~

为什么.....

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

事件默认传入的参数

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信