您的位置:首页 > 其它

高德地图marker事件监听-高德地图marker绑定事件就执行了[解决立即执行]

2017-09-30 16:01 381 查看
官方的demo是这样的:

地址:[]http://lbs.amap.com/api/javascript-api/example/infowindow/add-infowindows-to-multiple-markers]

<script type="text/javascript">
//初始化地图对象,加载地图
var map = new AMap.Map("container", {resizeEnable: true});
var lnglats = [
[116.368904, 39.923423],
[116.382122, 39.921176],
[116.387271, 39.922501],
[116.398258, 39.914600]
];
var infoWindow = new AMap.InfoWindow({offset: new AMap.Pixel(0, -30)});
for (var i = 0, marker; i < lnglats.length; i++) {
var marker = new AMap.Marker({
position: lnglats[i],
map: map
});
marker.content = '我是第' + (i + 1) + '个Marker';
marker.on('click', markerClick);
marker.emit('click', {target: marker});
}
function markerClick(e) {
infoWindow.setContent(e.target.content);
infoWindow.open(map, e.target.getPosition());
}
map.setFitView();
</script>


事实上marker绑定的点击事件在添加marker到地图时就已经执行了,我做了多次尝试更改绑定事件的写法,均以失败告终!于是详细阅读API,原来官方还提供了这样一个方法:

正确的事件绑定应该是这样子的:

重写marker绑定的方式,改用事件监听的方式。代码如下:

首先删除 marker.on(‘click’, markerClick);这句代码;

然后在本句代码处添加 AMap.event.addListener(marker,’click’,markerClick);

最后在 markerClick 方法中dosomething……

marker事件得到绑定,marker绑定的事件不会立即执行,只有点击后才执行!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐