JS 閉包
2010-09-16 17:46 空逸云 閱讀(450) 評論(12) 收藏 舉報很多時候.需要在循環的時候綁定元素事件.但實際上由于JS的機制問題,你綁定的代碼是等到了你觸發了事件時才引發.那么你的循環早就完成了.此時的調用肯定不是你想要的結果.
例如
for (var i = 0; i < items.length; i++) {
var item = $("<li ><a>" + i+ "</a></li>");
item.bind("click", function(){ dosometion(i) ;});
wIngreList.append(item);
}
可以百分百肯定.結果肯定不是你要.此時的i不再是你所需要的.而是items.length.那么怎么辦呢?閉包可以完成我們想要的
定義一個閉包的"類"
var closeFunc = function(i) {
return function() {
dosomething(this, i);
//此Function等到事件觸發時才執行,假如是click,那么this就是觸發click的元素
}
}
利用這個閉包類.就可以得到我們所想要的結果
item.bind("click", new closerFunc(items[i]));
OK .大功告成!
作者:空逸云
出處:http://kongyiyun.cnblogs.com
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
出處:http://kongyiyun.cnblogs.com
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
您的支持是我前進的動力,請猛擊.:
浙公網安備 33010602011771號