动态生成checkbox的问题
JScript code
function checkbox(){
var checkboxItem = [];
var chs = ['A','B','C','D'];
for(var i = 0; i < chs.length; i++){
var cls = "width-"+chs[i]+"-box";
var checkbox = new Ext.form.Checkbox({
id:chs[i]+"id",
boxLabel:chs[i],
listeners:{
render:function(el){
el.getEl().parent().addClass(cls);
}
}
});
checkboxItem.push(checkbox);
}
return checkboxItem;
}
-----------------------------------------------------
上面是一段用for循环生成checkbox的代码,不过有点小问题
当代码运行到el.getEl().parent().addClass(cls);时候,cls的值会改变,变成chs[i+1]
但在checkboxItem.push(checkbox);的后面alert(cls)的值是
width-A-box,width-B-box,width-C-box,width-D-box
----------------------------------
------解决方案--------------------你可以参考
http://stackoverflow.com/questions/359467/jquery-closures-loops-and-events
这个是jquery的做法
------解决方案--------------------
参照id:chs[i]+"id"写法,不用变量,可能var cls的指针都是一个地址。导致所有checkbox都是D