列表下劃過的代碼中,為什么只能用this不能用Lis[i]?
for?(var?i?=?0;?i?<?Lis.length;?i++)?{ Lis[i].onmouseover?=?function(){ this.style.background?=?'#567'; } Lis[i].onmouseout?=?function(){ this.style.background?=?'#fff'; } Lis[i].onclick?=?function(e){ var??id?=?this.id; e=?e?||?window.event; if(e.stopPropagation){ e.stopPropagation(); }else{ e.cancelBubble=true; } stateList.style.display?=?'none'; stateTxt.innerHTML=getByClass('stateSelect_text',id)[0].innerHTML; loginStateShow.className?=?"login-state-show?"+id; } }
上面那段
Lis[i].onmouseover = function(){
this.style.background = '#567';
}
我想改成Li[i].style.background = '#567'為什么就不能實(shí)現(xiàn)經(jīng)過選項(xiàng)更換顏色?而非要使用this呢?this不是指向Lis[i]嗎?????????
2016-07-18
list[i]指向的是所有經(jīng)過遍歷的li,并不是你鼠標(biāo)經(jīng)過的這一個(gè),你要找到當(dāng)前的這一個(gè),就必須傳值,而this是已經(jīng)封裝好的,指向當(dāng)前你鼠標(biāo)指向的這一個(gè)。
2016-07-01
在這個(gè)函數(shù)里面的i其實(shí)引用的是最后一次i的值,因?yàn)閒or循環(huán)時(shí),你并沒有執(zhí)行點(diǎn)擊函數(shù),當(dāng)執(zhí)行這個(gè)函數(shù)的時(shí)候,for循環(huán)已經(jīng)完畢,它發(fā)現(xiàn)它自己沒有這個(gè)變量i,于是向它的上級(jí)作用域查找這個(gè)變量i,也就是儲(chǔ)存在作用域鏈里面的最后一個(gè)i值
2016-07-01
是可以使用Lis[i]的,可能是書寫錯(cuò)誤。