我有多個div,其中包含類似的代碼,但在主div中還有一個唯一的id,它調用toggleClass & slideToggle函數。我試圖創建一個循環,以便我不必爲每個元素編寫類似的代碼。while循環在動態id和類的jQuery中
---工作代碼---(其中數值後的ID會改變)
$('#er1').click(function() {
$('#er1').toggleClass('but-extra-on');
$('#cr1').toggleClass('but-closerow-on');
$('#er1').next('div').slideToggle('slow');
return false;
});
- 不工作密碼 - (我想爲#ER1的點擊功能,# ER2,ER3#等)
var count = 1;
while (count < 10){
var curER = 'er'+count;
var curCR = 'cr'+count;
$('#'+curER).click(function() {
$('#'+curER).toggleClass('but-extra-on');
$('#'+curCR).toggleClass('but-closerow-on');
$('#'+curER).next('div').slideToggle('slow');
});
count++;
}
*出於某種原因,當我使用的代碼時,每當我點擊#ER1,ER2#,#ER3等。僅#ER9切換事件。
你可以發佈[JS小提琴演示](http://jsfiddle.net/)演示,顯示工作/非工作代碼?我假設'while'循環的最後一次迭代將一切設置爲'count'的最終值。 –
可能重複[從Javascript關閉循環訪問外部變量](http://stackoverflow.com/questions/1331769/access-outside-variable-in-loop-from-javascript-closure)和[JavaScript內部循環閉包 - 簡單實用的例子](http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) –
問題是你已經在循環中聲明瞭curCR和curER。您需要將循環外的變量移動。 –