2013-04-01 77 views
0

A我在做什麼的解釋。爲多維數組中的元素添加Click事件

我有ul有裏有名片在裏面,amout各不相同。我想添加額外的li來顯示我點擊的visting卡的描述。對於前如果我點擊1日2次或第3卡,我想在第4位增加新麗,如果我點擊第四第五或第六的話,我想在第7位新增華里。

爲此,我提出的功能,以具有陣列內三裏多維數組分裂裏。而多重數組就是調用塊。現在我寫了。但我無法在我需要的地方加入新的li。

,我得到這個錯誤類型錯誤:大塊[i]是未定義

而且我在下面給出

chunks[i] is undefined

chunks = [ 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15], 
    [li.pL14, li, li.pR15] 
] 

for (var i=0; i<chunks.length; i++) {  
    for (var j=0; j<chunks[i].length; j++) { 
     $(chunks[i][j]).click(function() { 
      $(chunks[i][j]).append('<li class="description"> <div class="cardDesCont mT1Mi"></div></li>'); 
     }); 
    } 
} 

代碼爲什麼會發生這種情況?

+0

爲什麼要爲每個元素添加點擊事件?使用父代的事件委託來處理它。 – epascarello

+1

這將是你問這個第二次,什麼did'nt從你的[第一個問題]工作(http://stackoverflow.com/questions/15739652/adding-click-event-for-array-elements-in-javasctipt )? – adeneo

+0

li是什麼定義的? –

回答

1

你有i++,你應該有j++,在內部循環。所以你正在增加i超出數組範圍。您的代碼應該是:

for (var i=0; i<chunks.length; i++) { 
    for (var j=0; j<chunks[i].length; j++) { 
     // --------------------- HERE ^^^ 
     $(chunks[i][j]).click(function() { 
      console.log('script works'); 
     }); 
    } 
}