鏈式在多li里 this沒有效果了
循環的時候lis[i].onmouseover=function () {
? ?sport(this,'width',400, function () {
sport( this,'height',400)},function () {
? ?});沒有效果?
循環的時候lis[i].onmouseover=function () {
? ?sport(this,'width',400, function () {
sport( this,'height',400)},function () {
? ?});沒有效果?
2016-11-23
舉報
2016-11-30
那要怎么做才有效呢,把this改成lis[i],也不行,謝謝
2016-11-23
在鏈式調用的時候不能使用this這個關鍵字,你這里的this沒有效果跟this的綁定的規則有關。this的綁定規則比較復雜,建議你看一下《你不知道的javascript上卷》,這本書里有解釋this的綁定問題。你這里的sport方法在第一次調用時的this的確是指向li的,這個this跟隨onmouseover后的匿名函數,這個匿名函數的this指向li元素。但是第二個sport方法的調用是在第一個sport方法調用里的匿名函數中,這個匿名函數的this并不指向li標簽,而是指向第一個sport方法,所以后面的調用都失敗了,所以沒有效果。