您的位置:首页 > 其它

在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);

}


在此函数中红色部分的内容若是放在外函数内,则最后弹出的信息都会是最后一条数据的信息,因此就把红色函数的内容拿出写一个函数调用,这样就不会出现上述情况。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐