首先一个问题是function(event)在什么时候用到
例如:
loginState.onclick=function(e){ e = e || window.event; if(e.stopPropagation){ e.stopPropagation(); }else{ e.cancelBubble=true; } stateList.style.display='block'; }
这一段代码中用到了,然而在这段代码中并没有用到。
lis[i].onmouseout=function(){ this.style.background='#FFF'; }
第二个问题是:addEventListener和function(event)有什么关系
例如
loginState.onclick=function(e){ e = e || window.event; if(e.stopPropagation){ e.stopPropagation(); }else{ e.cancelBubble=true; } stateList.style.display='block'; }
这一段和下面的一段是不是作用一致
loginState.addEventListener('click',function(){ if(loginState.stopPropagation){ loginState.stopPropagation(); }else{ loginState.cancelBubble=true; } stateList.style.display='block'; },false)
1,因为你要改变事件的属性,说要要传入参数e,不然你怎么知道事件是那个参数呢
2,两种方式是一致的,第一种是DOM0的写法,第二种是DOM2的写法,不过addEventListener在老版本IE中不支持,需要用attachEvent,最新的IE11已经支持addEventListener。
我认为,你的第二个问题中,两段代码的作用应该是一样,他俩的区别应该在于,addEventListener()是添加事件的方法,而function是一个函数,只是用于传参,不知道我理解的对不对
你需要用到事件的事件对象(属性和方法)的时候,例如IE的target,type,stopPropagation这些,就要引入event参数,第一个问题的第二段代码没有涉及 那些属性和方法,所以不需要引入event参数