问答详情
源自:4-3 [DOM事件] QQ面板状态切换效果

请问为什么不能这样写? 这个this代表的不是鼠标点击的这个Li 标签吗?


window.onload=function (){

    //切换面板事件

    var oShow=document.getElementById('loginStateShow');

    var oTxt=document.getElementById('login2qq_state_txt');

    var oUl=document.getElementById('loginStatePanel');

    var oLis=document.getElementsByTagName('li');

    var oState=document.getElementById('loginState');

    oState.onclick=function() {

        oUl.style.display='block';

    }

    for(var i=0;i<oLis.length;i++){

        oLis[i].onmouseover=function(){

            this.style.background='#567';

        }

        oLis[i].onmouseout=function(){

            this.style.background='#FFF';

        }

        oLis[i].onclick=function(){

            oUl.style.display='none';

            oTxt.innerHTML=oLis[i].childNodes[1].innerHTML;

            var id=oLis[i].id;

            oShow.className='';

            oShow.className="login2qq_state_txt"+id;

        }

    }

    

    


}


提问者:Coffeeed 2017-03-04 15:09

个回答

  • frontendsophie
    2017-03-05 17:17:43
    已采纳

    - -这么写有报错吗,this还能规避闭包的问题,就是如果要给所有<li>绑事件,不如事件委托绑<ul>上去。