地图 onclick 事件优先于图形点击事件

Map onclick event taking precedence over graphic click event

我在显示信息窗口的地图上注册了一个点击事件。但我还在 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
   }
});