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
----------------------------------------------------------------------
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
----------------------------------------------------------------------
解决方案 »
- Html 5 是指的 html+javascript 吗?
- js清除浏览器缓存
- 关于window.open()使用之后的问题,请教高手
- Ext.util.JSON.decode(response.responseText)报错
- 这个JS是 什么意思
- 如何在onkeydown或者onkeypress中取到key的实际ascii?
- 简简单单50分就是你的--go
- 用正则表达式怎么表示所有的html标签
- 如何判断一个变量是否定义过?使用if(var)的方法不行,报错
- 我把源码公布,请大家一定帮忙,要不我真的要失业了,谢谢
- 问一个把数组添加到select的option的问题··
- 这里面的valueof:functions(){}是什么意思??
http://stackoverflow.com/questions/359467/jquery-closures-loops-and-events
这个是jquery的做法
这个写法可能也一样。最好在checkbox中添加一个属性,例如order: chs[i],listeners:{
render:function(el){
el.getEl().parent().addClass("width-"+this.order+"-box");
}
}
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 (idx) {
return function (el) {
el.getEl().parent().addClass("width-" + chs[idx] + "-box");
}
})(i)//////////这里做闭包
}
});
checkboxItem.push(checkbox);
}
return checkboxItem;
}