我想創建一個動態的手風琴。我的問題是,我似乎無法得到for循環內的i
變量的引用。我知道這是一個範圍問題,但我認爲這個關閉會做的伎倆....請有人幫助我,因爲這讓我完全瘋了。使用閉包在for循環內動態添加點擊函數
jQuery(function(){
var tables = jQuery('table');
var tableHeadings = jQuery('h3');
for(i =0 , ii = tableHeadings.length; i < ii; i++){
(function(){
var index = i;
tables.eq(index).addClass('table-' + index);
tableHeadings.eq(index).click(function(){
tables.eq(index).slideToggle();
});
})();
}
});
有你有哪裏失敗一個活生生的例子?這應該工作AFAIK。 – Matt 2011-12-19 15:49:36
爲什麼你需要在這裏關閉?只需直接在for循環中執行代碼即可。 – asawyer 2011-12-19 15:50:01
@asawyer:因爲否則在點擊處理程序中,'i'(或'index')將始終是最後一個值。 – Matt 2011-12-19 15:50:42