在ajax循环加载多条数据,并在内部定义一个函数
2011-09-25 20:13
711 查看
ajax取回的数据在加载的时候,在内部定义一个函数时,并调用域内的变量,在显示的时候出现所有的信息都显示的是最后一条数据的信息。因此应该把在循环内加载并动态创建函数取出,另定义一个函数,在ajax中调用。
在此函数中红色部分的内容若是放在外函数内,则最后弹出的信息都会是最后一条数据的信息,因此就把红色函数的内容拿出写一个函数调用,这样就不会出现上述情况。
function ajaxgetPoly(polyline) { if(polyline=="polygon") { url="ajaxgetpoint.asp?type=5"; }else { url="ajaxgetpoint.asp?type=6"; } xmlHttp.open("GET",url,true); xmlHttp.onreadystatechange=function() { if (xmlHttp.readyState == 4) { var response = xmlHttp.responseText; //alert(response); var dlist=response.split("%"); //alert(dlist.length); for(var i=1;i<dlist.length;i++) { var n=eval("("+dlist[i]+")"); addpolyGon(n); } } //alert( n.polyColor); } xmlHttp.send(null); }
function addpolyGon(item) { var polypoint=item.polyAry.split('|'); var pointary; var pathpointary=new Array(); var flightPath=null; for(var i=0;i<polypoint.length-1;i++) { //alert(new google.maps.LatLng(polypoint[i].split(',')[0],polypoint[i].split(',')[1]).lat()); pointary=polypoint[i].split(','); pathpointary.push(new google.maps.LatLng(pointary[0],pointary[1])); } flightPath=new google.maps.Polygon({ map:map, paths: pathpointary, strokeColor: item.polyColor, strokeOpacity: 0.8, strokeWeight: 2, fillColor: item.polyColor, fillOpacity: 0.35 }); google.maps.event.addListener(flightPath,'click', showinfo); function showinfo(event) { // var verpath=this.getPath(); var contentStr="<b>网格名称:</b>"+item.name+"<br/><b>网格管理人:</b>"+item.polymanager+"<br/>"; contentStr+="点击位置:"+GetFormatPoint(event.latLng.lat()) + "N," + GetFormatPoint(event.latLng.lng())+"E<br/>"; infowindow.setContent(contentStr); infowindow.setPosition(event.latLng); infowindow.open(map); } pathary2.push(flightPath); }
在此函数中红色部分的内容若是放在外函数内,则最后弹出的信息都会是最后一条数据的信息,因此就把红色函数的内容拿出写一个函数调用,这样就不会出现上述情况。
相关文章推荐
- Python 里为什么函数可以返回一个函数内部定义的函数
- 定义一个圆类(Circle),私有数据成员为半径(radius)、圆周长和面积,共有成员函数为输入半径;计算周长、面积;输出半径、周长和面积。要求定义构造函数(以半径为参数,缺省值为0,周长和面积在
- 在jQuery中定义了一个done的内部函数
- 定义一个List集合并实例化对应的实现类对象。循环输入任意个整数,输入0结束输入循环,对集合中的数据进行从大到小的排序后输出
- 简化以下程序,将函数对象 divide_by 转换为一个函数,并将 for 循环替换为用一个标准的 C++ 算法来输出数据
- js移动端滑动一个屏幕再加载新的数据以及ajax同步请求
- boost::bind会返回一个函数对象,它内部保存了数据的拷贝
- 一个递归循环 用来加载 easyui 树形结构数据
- 定义一个加载数据的dialog
- ajax请求的与页面本身有的数据(页面加载时候存在)的一个区别
- js基础--变量、数据类型、循环、判断、函数定义
- 用最简单的函数实现功能:判断一个int数据是否是2的x次幂(不能使用循环)。
- 【8.17】建立一个用来实现求3个数和的类模板(将成员函数定义在类模板的内部),并写出调用此类模板的完整程序。
- 定义一个函数模板,为指定的数据类型分配内存。
- vs2005 ajax 未能加载文件或程序集“Ajax”或它的某一个依赖项 或者sys 未定义
- 一个可以不传参数就可以在函数中改变调用者内部的变量数据的函数
- [面试] 递归 反向输出链表 ,定义一个求字符串长度的函数, 反向输出字符串. 不能再函数内部定义变量.
- [面试] 递归 反向输出链表 ,定义一个求字符串长度的函数, 反向输出字符串. 不能再函数内部定义变量.
- 学习类,笔记!关于一个函数里面定义多个类以及相互访问的问题
- 【练习题】编写一个函数,把一个char组成的字符串循环右移n位