[問題] jquery click事件沒作用

看板Ajax作者 (哇120)時間15年前 (2010/09/18 09:24), 編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/2 (看更多)
我在jQuery Element上用陣列的方式來表示 ex: var item=new array("a","b","c","d"); //a,b,c,d是範例. 之後實作click事件 1. $(function(){ for(var i=0;i<item.length;i++) $("#"+item[i]).attr("disabled","disabled"); for(var i=0;i<item.length;i++) { if((i+1)<item.length) $("#"+item[i]).click(function(){$("#"+item[i+1]).removeAttr("disabled");}); } }); 這樣是沒反應的... 但是我把它改寫成 2. $(function(){ for(var i=0;i<item.length;i++) $("#"+item[i]).attr("disabled","disabled"); $("#"+item[0]).click(function(){$("#"+item[1]).removeAttr("disabeld");}); $("#"+item[1]).click(function(){$("#"+item[2]).removeAttr("disabled");}); $("#"+item[2]).click(function(){$("#"+item[3]).removeAttr("disabled");}); }); 這樣子就ok,能執行成功.. 後來有測試一下,在 1. 上面click callback function內執行 alert($("#"+item[i+1]).attr("disabled")); 結果是undefine 我有試過把.removeAttr("disabled")改成.attr("disabled","")也是沒成功 像這種情況到底是什麼原因呢.. 謝謝各位.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.46.184

09/18 09:26, , 1F
我也有試過把.click()改成.bind("click",function(){})
09/18 09:26, 1F

09/18 09:26, , 2F
結果也是一樣....
09/18 09:26, 2F

09/18 11:03, , 3F
我沒測過 但是不是i+1的問題 他變成字串而不是數字+1
09/18 11:03, 3F

09/18 11:06, , 4F
也有試過parseInt().... 真的很詭異= =
09/18 11:06, 4F

09/18 11:34, , 5F
i吃到跑完迴圈的i 所以每個click的callback裡的i都等於4
09/18 11:34, 5F

09/18 12:43, , 6F
嗯 這是個scope 的問題,就跟itisjoe講得一樣。
09/18 12:43, 6F

09/19 01:01, , 7F
09/19 01:01, 7F

09/19 10:06, , 8F
下面 Dusan 的開砲好有趣 XD
09/19 10:06, 8F
文章代碼(AID): #1Cb1JeMA (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1Cb1JeMA (Ajax)