js 在for循环执行延时方法时 局部变量污染
2017-12-28 17:38
281 查看
for (var i = 0; i < data_info.length; i++) { var marker = new BMap.Marker(new BMap.Point(data_info[i][0], data_info[i][1]),{icon:myIcon}); // 创建标注 var content = data_info[i][2]; var projectcontent = data_info[i][3]; map.addOverlay(marker); // 将标注添加到地图中 addMarkerListerner(marker, content,projectcontent); marker.setLabel(new BMap.Label(content, { offset : new BMap.Size(35, 10) } )); } function addMarkerListerner(marker, content,projectcontent) { marker.addEventListener("click", function(marker) { //省略... }); }
如上, 如果addEventListener直接写在for循环里, 拿到的content和projectcontent永远是for循环拿到的最后一次.但在外面嵌套一个方法,for循环里调用时, 可以拿到每一个content和projectcontent的值
相关文章推荐
- js延时执行方法
- 7种js延时加载执行的方法
- js延时执行一个方法
- 延时程序执行不推荐system(“pause”)方法
- 异步加载js并执行js方法
- 点击超链接,执行js脚本而不进行跳转的方法
- Node.js node-schedule定时任务隔多少分钟执行一次的方法
- iOS之延时执行(睡眠)的几种方法
- [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]
- js 延时执行某函数
- js调试工具console.log()方法查看js代码的执行情况
- cocos2d-x 对一个普通方法进行延时执行操作
- Android中延时执行某任务的方法;
- JS实现判断滚动条滚到页面底部并执行事件的方法
- Android中实现延时执行操作的几种方法
- android/java 中两种延时执行的方法
- js如何让方法在延迟两秒后执行
- iOS之延时执行(睡眠)的几种方法
- C# winForm中直接使用网站JS函数的快捷方法,可执行多种JS函数
- asp.net服务器控件button先执行js再执行后台的方法