鏈式運動多個li問題
將視頻中vivian的li擴展到多個li然后使用如下代碼進行運動的時候startMove中無論傳遞this,還是對象本身aLi[i]都會報錯,這是什么原因,這個鏈式運動不支持多個對象么?
var?aLi?=?document.getElementsByTagName("li");
for(var?i=0;i<aLi.length;i++){
??????aLi[i].timer?=?null;
????aLi[i].onmouseover?=?function(){
????????startMove(aLi[i],400,'width',function(){-----這里無論傳遞什么都會有錯誤
????????????????????startMove(aLi[i],200,'height')
????????});
????}
????aLi[i].onmouseout?=?function(){
????????startMove(this,200,'width');
????}
}
<li></li>
<li></li>
<li></li>有人已經問過了解決方法是:
http://www.xianlaiwan.cn/qadetail/139773
var?aLi?=?document.getElementsByTagName("li");
for(var?i=0;i<aLi.length;i++){
????aLi[i].timer?=?null;?
????aLi[i].onmouseover?=?function(){
????????var?myThis?=?this;
????????startMove(myThis,400,'width',function(){
????????????????????startMove(myThis,200,'height')
????????});
????}
????aLi[i].onmouseout?=?function(){
????????var?myThis?=?this;
????????startMove(myThis,200,'width');
????}
}但是我想知道為什么會出現這種情況,這里的this分別代表什么,aLi[i]傳遞到startMove又是什么變量,是指針還是僅僅一個object?
2016-11-14
你可以在控制臺輸出測試下this指的是什么,或者你把所有代碼粘貼過來 ?我看看