js数组,循环,闭包问题

来源:互联网 发布:淘宝助理上传很慢 编辑:程序博客网 时间:2024/05/29 18:37
var markerarray = new Array();      var labelarray = ['武术馆','初中楼B座','初中办公楼','初中楼A座','科技楼','高中楼','实验楼','高中办公楼','综合楼','图书馆文体楼','操场']      var poinntarray = [new BMap.Point(116.333645,39.983996),new BMap.Point(116.333095,39.98402),new BMap.Point(116.332704,39.984214),new BMap.Point(116.333093,39.984353),      new BMap.Point(116.333426,39.984739),new BMap.Point(116.333136,39.985195),new BMap.Point(116.332655,39.985427),new BMap.Point(116.332894,39.985406),      new BMap.Point(116.333346,39.985363),new BMap.Point(116.333679,39.985394),new BMap.Point(116.334302,39.984403)]      //逐个添加文本标签和建筑标志      for(var i=0;i<labelarray.length;i++){ var opts = {         position : poinntarray[i],    // 指定文本标注所在的地理位置         offset   : new BMap.Size(-20, -50)    //设置文本偏移量         } var label = new BMap.Label(labelarray[i], opts);  // 创建文本标注对象 map.addOverlay(label); var marker = new BMap.Marker(poinntarray[i]); markerarray.push(marker) map.addOverlay(marker);}//加载监听,解决闭包问题for(var i=0;i<markerarray.length;i++){   markerarray[i].onclick = (function(arg){              return function () {           var p = markerarray[arg].getPosition();  //获取marker的位置       window.hello.javaMethod("marker的位置是" +  p.lng + "," + p.lat) }})(i);}
原创粉丝点击