今天遇到了這個問題:
復制代碼 代碼如下:
//偽代碼
for (var i=0; i<n; i++) {
addEvent(obj[i], "click", func(i));
}
結果出現了問題,所有的dom都被注冊了 i=n 的時候的事件,查了一些資料,說是在循環過程過this被改變,注冊過的事件也被隨之改變,找到了一種解決方法;
復制代碼 代碼如下:
for (var i=0; i<n; i++) {
(function (i){addEvent(obj[i], "click", function (){func(i);});})(i);
}
利用必包保持對變量的持久引用,很強大的說!
(如果您有更好的方法,請不吝賜教(*^__^*) 嘻嘻……)