showMes 参数 event 调用时没有此参数了?
showMes 参数是咋回事?
showMes 参数是咋回事?
2016-03-05
我是这样理解的,在给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两个属性。
讲道理,我觉得是这么回事,讲错了欢迎有人指正。
举报