鏈式運動多個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指的是什么,或者你把所有代碼粘貼過來 ?我看看