Событие onclick карты имеет приоритет над событием графического клика

javascript maps esri

278 просмотра

1 ответ

У меня зарегистрировано событие клика на карте, которая показывает информационное окно. Но у меня также есть зарегистрированное событие нажатия на 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
});
Автор: asprin Источник Размещён: 08.11.2019 10:57

Ответы (1)


1 плюс

Решение

Я понял. У обработчика щелчков карты есть свойство, 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
   }
});
Автор: asprin Размещён: 22.08.2016 12:24
Вопросы из категории :
32x32