ZOLETH
ZOLETH
  • 发布:2019-04-02 17:12
  • 更新:2019-04-02 17:12
  • 阅读:580

动态生成控件并且为每个控件添加监听器时传值的问题

分类:HTML5+
js

用mui.ajax获取到了一组数据,循环遍历的同时创建相应的控件,并且为每个控件添加监听事件,代码如下:
for (var device in data) {
...
var newLi = document.createElement("li");
newLi.addEventListener('tap',function(event){
mui.openWindow({
url:"device_info.html",
id:"device_info",
createNew:true,
extras:{
deviceId:data[device].deviceId,
}
});
});
...
}
这样写导致不管点哪个newLi对应的deviceId都是最后一个,然后我又改成如下的形式:
newLi.value = data[device].deviceId,
...
extras:{
deviceId:newLi.value,
}
...
发现还是不行,最后我想到了this,改成下面的形式就行了:
deviceId:this.value,
这其中的原理我大概知道一点点,不然也想不到用this了,但说不出,麻烦谁来清楚的解释下

2019-04-02 17:12 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复