解决循环动态添加事件,参数为最后一次循环值的问题


<html>
<head>
<title></title>
<script>
function init(){
for(var i=1;i<=3;i++)
{
var InsureMoney=eval("form1.InsureMoney"+i);

mapping(InsureMoney,i);//不这样处理,传递到doBlur的参数总为最后一次i的值

}

}

function mapping(element, value)
{
if(window.addEventListener){
element.attachEvent("blur", function(){ doBlur(value);}) ;
}else{
element.attachEvent("onblur", function(){ doBlur(value);}) ;
}

}


function doBlur(index){

alert(index)

}
</script>
</head>
<body onload="init()">
<form name="form1">
1: <input type="text" name="InsureMoney1" value="1"><br>
2: <input type="text" name="InsureMoney2" value="2"><br>
3: <input type="text" name="InsureMoney3" value="3"><br>
</form>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
问题描述: 在使用map循环嵌套for循环时,使用GridLayout布局,每次循环都对同一个GridLayout对象进行了配置,导致前面的配置被后面的配置覆盖掉了,最终只保留了最后一次的配置参数解决方案: 解决这个问题的方法是在每次循环中使用新的GridLayout对象,确保每个对象都有独立的参数设置,不会被后续的循环覆盖。 示例代码: ``` Map<String, List<String>> data = new HashMap<>(); // 假设 data 已经初始化,并且包含数据 GridLayout gridLayout = findViewById(R.id.grid_layout); gridLayout.setColumnCount(3); // 设置列数 gridLayout.setRowCount(data.size()); // 设置行数 int index = 0; for (String key : data.keySet()) { List<String> values = data.get(key); GridLayout itemLayout = new GridLayout(this); itemLayout.setColumnCount(2); // 设置列数 itemLayout.setRowCount(values.size()); // 设置行数 // 设置每个item的数据 for (int i = 0; i < values.size(); i++) { TextView textView1 = new TextView(this); textView1.setText(key); TextView textView2 = new TextView(this); textView2.setText(values.get(i)); itemLayout.addView(textView1); itemLayout.addView(textView2); } // 将item添加到整体布局中 GridLayout.LayoutParams layoutParams = new GridLayout.LayoutParams(); layoutParams.rowSpec = GridLayout.spec(index, GridLayout.FILL, 1f); layoutParams.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, GridLayout.FILL, 1f); gridLayout.addView(itemLayout, layoutParams); index++; } ``` 在这个示例代码中,我们使用了一个新的GridLayout对象`itemLayout`来设置每个item的数据,最终将每个item添加到整体布局`gridLayout`中。这样,每个item都有独立的参数设置,不会被后续的循环覆盖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值