Javascript 优先于图形单击事件的映射onclick事件
我在显示信息窗口的地图上注册了一个点击事件。但是我也在Javascript 优先于图形单击事件的映射onclick事件,javascript,maps,esri,Javascript,Maps,Esri,我在显示信息窗口的地图上注册了一个点击事件。但是我也在map.graphics层上注册了一个点击事件,它将显示图形的信息窗口 问题是,当我单击图形时,它的信息窗口会在瞬间显示,然后被地图的信息窗口覆盖 单击图形时,如何避免触发地图的onclick事件 //map's onclick event map.on("click", function(event){ . . . map.infoWindow.show(event.mapPoint); }); // graphi
map.graphics
层上注册了一个点击事件,它将显示图形的信息窗口
问题是,当我单击图形时,它的信息窗口会在瞬间显示,然后被地图的信息窗口覆盖
单击图形时,如何避免触发地图的onclick事件
//map's onclick event
map.on("click", function(event){
.
.
.
map.infoWindow.show(event.mapPoint);
});
// graphic's onclick event
dojo.connect(map.graphics, "onClick", function(e) {
var html = e.graphic.infoTemplate;
map.infoWindow.setTitle("Address");
map.infoWindow.setContent(html);
map.infoWindow.resize('300', '120');
map.infoWindow.show(slcGraphic.geometry); // slcGraphic is a global variable
});
我想出来了。地图的单击处理程序有一个属性
event.graphic
,如果单击图形,该属性将不会为空。因此,我修改了我的地图的点击处理程序,如下所示,并删除了图形的点击处理程序
map.on("click", function(event){
if(event.graphic)
{
// do what needs to happen on marker click
}
else
{
// do what needs to happen on map click
}
});