亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

為每道門綁定事件,為什么要使用閉包形式

//為每道門綁定事件
	for?(var?i?=?0,?len?=?imgs.length;?i?<?len;?i++)?{
		//使用立即調用的函數表答式,為了獲得不同的i值
		(function(i)?{
			imgs[i].onmouseover?=?function()?{
				//先將每道門復位
				setImgsPos();
				//打開門
				for?(var?j?=?1;?j?<=?i;?j++)?{
					imgs[j].style.left?=?parseInt(imgs[j].style.left,?10)?-?translate?+?'px';
				}
			};
		})(i);
	}

	
直接在for里面綁定不可以么??????	
for?(var?i?=?0,?len?=?imgs.length;?i?<?len;?i++)?{

			imgs[i].onmouseover?=?function()?{
				//先將每道門復位
				setImgsPos();
				//打開門
				for?(var?j?=?1;?j?<=?i;?j++)?{
					imgs[j].style.left?=?parseInt(imgs[j].style.left,?10)?-?translate?+?'px';
				}
			};


正在回答

1 回答

閉包中的i和外面的循環i是二回事了,閉包中的i在此時已經是個參數,是個常量了,所以在綁定時生成的function中,不同的i,在注釋打開門那段代碼中i的值是不一樣的,

而不用閉包,i就是變量了,所以生成綁定事件時,i一直在變,所有事件就會變成一樣,要么就是JS報錯,因為j隨著i改變

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為每道門綁定事件,為什么要使用閉包形式

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號