循环监听事件出错,只能监听最后一个
(function(){ var i= 0; for (;i<value;i=i+1){ (function(j){ var flip_id = "#flip"+i+""; var panel_id = "#panel"+i+""; $(flip_id).click(function(){ $(panel_id).slideToggle("slow"); }); })(i); } })();
普通监听要等到循环结束后才行,所以只能监听到最后一个。
使用闭包可以监听所有的。
闭包的代码
原来的代码
for(var i=0; i<value; i++){ //alert(i); var flip_id = "#flip"+i+""; var panel_id = "#panel"+i+""; // alert(flip_id+" "+panel_id); //$("div[id="+flip_id+"]").click(function(){ // $("div[id="+panel_id+"]").slideToggle("slow"); //}); console.log(flip_id); console.log("panel="+panel_id); $(flip_id).click(function(){ $(panel_id).slideToggle("slow"); }); }