地图上marker或其他对象的点击事件都会传到map对象,所以很多人在使用API时发现我绑定了map和一个marker的click事件,发现点击marker的时候,不仅marker的click事件会被触发,map的click事件也会被触发。API会将事件向上传递,实际上点击任何覆盖物都会向上传递到map。那问题是怎么区分呢?map的click事件的事件参数e中包含一个名为overlay的属性,所以只需要在事件处理函数中判断overlay是否存在即可区分
- map.addEventListener("click", function(e){ //点击事件
- //alert(e.point.lng + ", " + e.point.lat);
- if(!e.overlay){
- alert("aaaaaaaa");
- }
- }