百度地图api不能为每个标注添加自己的事件处理吗? 5
varmap=newBMap.Map("container");varpoint;varmyArray=newArray()for(vari=1;i<10;i++){po...
var map = new BMap.Map("container");
var point;
var myArray=new Array()
for(var i=1;i<10;i++)
{
point = new BMap.Point(116.404+(i/1000), 39.915+(i/1000));
myArray[i]=point;
}
map.centerAndZoom(point, 15);
map.addControl(new BMap.NavigationControl()); //导航
var marker;
for(var j=1;j<10;j++){
marker = new BMap.Marker(myArray[j]); // 创建标注
marker.addEventListener("click",function(){
marker.openInfoWindow(new BMap.InfoWindow(i));
//this.openInfoWindow(new BMap.InfoWindow(i)); 这样效果一样的
});
marker.setLabel(new BMap.Label("我是百度,呵呵",{offset:new BMap.Size(10,-40)}));
map.addOverlay(marker);
} // 将标注添加到地图中
显示信息窗口值都为10,说明前面9个marker的事件被覆盖,怎样才能为每个marker添加自己的事件处理内容而不被其他的覆盖呢? 展开
var point;
var myArray=new Array()
for(var i=1;i<10;i++)
{
point = new BMap.Point(116.404+(i/1000), 39.915+(i/1000));
myArray[i]=point;
}
map.centerAndZoom(point, 15);
map.addControl(new BMap.NavigationControl()); //导航
var marker;
for(var j=1;j<10;j++){
marker = new BMap.Marker(myArray[j]); // 创建标注
marker.addEventListener("click",function(){
marker.openInfoWindow(new BMap.InfoWindow(i));
//this.openInfoWindow(new BMap.InfoWindow(i)); 这样效果一样的
});
marker.setLabel(new BMap.Label("我是百度,呵呵",{offset:new BMap.Size(10,-40)}));
map.addOverlay(marker);
} // 将标注添加到地图中
显示信息窗口值都为10,说明前面9个marker的事件被覆盖,怎样才能为每个marker添加自己的事件处理内容而不被其他的覆盖呢? 展开
2个回答
展开全部
我修改了一下你的代码,用函数就可以了
var map = new BMap.Map("container");
var point;
var myArray=new Array()
for(var i=1;i<10;i++)
{
point = new BMap.Point(116.404+(i/1000), 39.915+(i/1000));
myArray[i]=point;
}
map.centerAndZoom(point, 15);
map.addControl(new BMap.NavigationControl()); //导航
var marker;
for(var j=1;j<10;j++){
addMarker(j);
} // 将标注添加到地图中
function addMarker(k){
marker = new BMap.Marker(myArray[k]); // 创建标注
map.addOverlay(marker);
var infoWindow = new BMap.InfoWindow(k); // 创建信息窗口对象
marker.addEventListener("click", function(){
this.openInfoWindow(infoWindow);
});
marker.setLabel(new BMap.Label("我是百度,呵呵",{offset:new BMap.Size(10,-40)}));
}
var map = new BMap.Map("container");
var point;
var myArray=new Array()
for(var i=1;i<10;i++)
{
point = new BMap.Point(116.404+(i/1000), 39.915+(i/1000));
myArray[i]=point;
}
map.centerAndZoom(point, 15);
map.addControl(new BMap.NavigationControl()); //导航
var marker;
for(var j=1;j<10;j++){
addMarker(j);
} // 将标注添加到地图中
function addMarker(k){
marker = new BMap.Marker(myArray[k]); // 创建标注
map.addOverlay(marker);
var infoWindow = new BMap.InfoWindow(k); // 创建信息窗口对象
marker.addEventListener("click", function(){
this.openInfoWindow(infoWindow);
});
marker.setLabel(new BMap.Label("我是百度,呵呵",{offset:new BMap.Size(10,-40)}));
}
展开全部
for(var j=1;j<10;j++){
marker = new BMap.Marker(myArray[j]); // 创建标注
var n = i;
marker.addEventListener("click",(function(){
return function(n){
marker.openInfoWindow(new BMap.InfoWindow(n));
}
})());
}
marker = new BMap.Marker(myArray[j]); // 创建标注
var n = i;
marker.addEventListener("click",(function(){
return function(n){
marker.openInfoWindow(new BMap.InfoWindow(n));
}
})());
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询