第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

請問為什么不能這樣寫? 這個this代表的不是鼠標(biāo)點(diǎn)擊的這個Li 標(biāo)簽嗎?


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;

? ? ? ? }

? ? }

? ??

? ??


}


正在回答

1 回答

- -這么寫有報錯嗎,this還能規(guī)避閉包的問題,就是如果要給所有<li>綁事件,不如事件委托綁<ul>上去。

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

frontendsophie

不過在給<ul>綁定變背景色的時候,就不能用this了,因?yàn)槟菚rthis會指向整個<ul>,就必須用event.target來給單個<li>來變色了,這就是區(qū)別吧。event.target永遠(yuǎn)是直接接受事件的目標(biāo)DOM元素。
2017-03-05 回復(fù) 有任何疑惑可以回復(fù)我~
#2

Coffeeed 提問者

謝謝你呀 雖然我沒太懂 還是謝謝了。
2017-03-06 回復(fù) 有任何疑惑可以回復(fù)我~
#3

frontendsophie 回復(fù) Coffeeed 提問者

oLis[i].onmouseout=function(){this.style.background='#FFF';} 這種函數(shù)調(diào)用是方法式調(diào)用,這時this會指向當(dāng)前調(diào)用方法的對象,也就是oLis[i],也就是當(dāng)前鼠標(biāo)指向的<li>,而event.target指向的永遠(yuǎn)是直接接受事件的目標(biāo)DOM元素,所以event.target也指向鼠標(biāo)指向的<li>,此時this與event.target等價。
2017-03-06 回復(fù) 有任何疑惑可以回復(fù)我~
#4

frontendsophie 回復(fù) Coffeeed 提問者

同理如果我用事件委托給oUl綁這個事件,就是oUl.onmouseout=function(){this.style.background='#fff';},那么這個時候this就會指向oUl。那如果指向oUl,一碰到<ul>這個大塊,整個<ul>的背景就會變色,就達(dá)不到我要給每個Li單獨(dú)變色的目的。而如果使用event.target,它還是指向直接接受事件的目標(biāo)DOM元素,也就是指向當(dāng)前鼠標(biāo)指向的<li>,所以此時就必須寫成oUl.onmouseout=function(event){event.target.style.background='#fff';}。
2017-03-06 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

舉報

0/150
提交
取消

請問為什么不能這樣寫? 這個this代表的不是鼠標(biāo)點(diǎn)擊的這個Li 標(biāo)簽嗎?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號