我在地图上注册了一个点击事件,显示了一个信息窗口。但我也在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
});
答案 0 :(得分:1)
我明白了。地图的点击处理程序具有属性event.graphic
,如果单击图形,则不会为null。所以我按如下方式修改了地图的点击处理程序,并完全删除了图形的点击处理程序。
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
}
});