Re: [問題] 請教jQuery迴圈的問題 !

看板Ajax作者 (沉默是金)時間17年前 (2008/10/28 11:39), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《killuaza (Killuaza)》之銘言: : 各位先進好 : 小弟目前有一小段程式有問題 : 對jQuery 還不是很熟 ,還請大家多多幫忙 ! : for(var i=1;i<best.length;i++){ : if(i<10){ : document.write("<td id=zone0-"+ i + " width=60 align='center'>0" + i + "</td>"); : }else{ : document.write("<td id=zone0-"+ i + " width=60 align='center'>" + i + "</td>"); : } : if((i%10)==0)document.write("</tr><tr>"); : $("td#zone0-"+i).click(function(){ /*這裡面的時空是被按下之後的時空*/ : if($(this).css("background-color")=='red'){ : $(this).css("background-color","white"); : zoneInput[0]--; : best[i]--; : }else{ : if(zoneInput[0]>=max){ : alert('Over Max'); : }else{ : $(this).css("background-color","red"); : zoneInput[0]++; : best[i]++; : } : } : }); : } : 我想做的就是在一表格內點任一數字 : 然後該數字就會做加總 : 但在 .click(function 裡,迴圈的 i 值都是固定 為 81 (best.length=80) : 這是為什麼咧 ? 因為靜態變數+時間差的關係 , 你這樣寫綁訂的時候是把 i 這個變數綁進function(){} 而不是把i的值給綁進去 , 希望這樣講你能瞭解. XD 而 i 最後它去找系統中 i 的值時候 , i 是跑完loop後最後剩下的值. 我沒測過 , 不過我想把資料存起來應該就好了吧. :p $("td#zone0-"+i).data("index",i).click(function(){ var i=$(this).data("index"); /*.....剩下的處理... */ }); -- What do you want to have ? / What do you have? 從書本中,你可以發現我的各種興趣。 從CD中,你可以瞭解我所喜歡的偶像明星。 或許從文字你很難以瞭解一個人,但從物品可以。 My PPolis , My past. http://ppolis.tw/user/Tony -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.128.219.202

10/28 11:40, , 1F
"[問題] function 裡的 setTimeout 與 變數" 跟這問題一樣
10/28 11:40, 1F

10/28 11:44, , 2F
太感謝你了 TonyQ 大哥,馬上就解決了問題! 謝謝~
10/28 11:44, 2F
文章代碼(AID): #191ecDKo (Ajax)
討論串 (同標題文章)
文章代碼(AID): #191ecDKo (Ajax)