我给地图设置了点击事件,然后会在鼠标点击的位置生成一个marker,然后我在生成这个marker的方法里面从数据库获取了临近点的坐标,并生成另外的marker添加到地图上,并且添加了点击事件,但是现在有两个问题,
1.我想设置点击新生成的标签时候不触发点击地图事件,应该如何做?
2.在方法里新生成的那些标签我设置了点击事件,但是在创建这些标签的时候触发了,而点击却没有触发,这是为什么?
希望大神们帮忙解答一下,感激不尽
以下是相应JS代码
// 添加地图标记,点击添加标记,然后地图中心设置为点击地点
map.addEventListener("click", function (e) {
//map.removeOverlay(onlyMarker);
map.clearOverlays();
point.lat = e.point.lat;
point.lng = e.point.lng;
onlyMarker.setPosition(point);
circle.setCenter(point);
circle.setRadius(1000);
map.addOverlay(onlyMarker);
map.addOverlay(circle);
map.setCenter(point);
document.getElementById("lat").value = point.lat;
document.getElementById("lng").value = point.lng;
$.ajax({
url: '/Main/GetShopList',
type: 'POST',
datatype: 'json',
data: { lon: point.lng, lat: point.lat },
success: function (data) {
var list = JSON.parse(data);
var tempPoint = new BMap.Point();
var myIcon = new BMap.Icon("marker.png", new BMap.Size(25, 30));
for (var i = 0; i < list.length; i++) {
tempPoint.lat = list[i].Pos_lat;
tempPoint.lng = list[i].Pos_lon;
var shoppoint = new BMap.Marker(tempPoint);
map.addOverlay(shoppoint);
shoppoint.addEventListener("click", function pointclicked(e) {
alert("点击了标签"+list[i].ID);
});
}
},
error: function (msg) {
alert("获取失败,请重试");
}
})
});
这种情况下是点击地图会出现点击地点的标记,然后会显示周围的点的标记,同时会提示“点击了标签XX”,但是我点击周围的点都无法触发点击事件,反倒是地图中心点在跟着点击的点换位置,我想让他点击其他标注点不触发地图中心点的点击事件,同时让新增的点的点击事件可用,希望大神们帮忙解决,谢谢