作者wa120 (哇120)
看板Ajax
标题[问题] jquery click事件没作用
时间Sat Sep 18 09:24:54 2010
我在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
1F:→ wa120:我也有试过把.click()改成.bind("click",function(){}) 09/18 09:26
2F:→ wa120:结果也是一样.... 09/18 09:26
3F:推 itisjoe:我没测过 但是不是i+1的问题 他变成字串而不是数字+1 09/18 11:03
4F:→ wa120:也有试过parseInt().... 真的很诡异= = 09/18 11:06
5F:→ itisjoe:i吃到跑完回圈的i 所以每个click的callback里的i都等於4 09/18 11:34
6F:→ TonyQ:嗯 这是个scope 的问题,就跟itisjoe讲得一样。 09/18 12:43
8F:→ TonyQ:下面 Dusan 的开炮好有趣 XD 09/19 10:06