2015-06-05 2 views
0

Я хочу добавить событие click to ol.Overlay в OpenLayers. Какой был бы лучший способ сделать это?OpenLayers - добавить событие click на ol.Overlay

Причина использования ol.Overlay: Я хочу добавить пользовательский маркер с изображением и текстом, который можно было бы изменить динамически. Для этого я использую ol.Overlay добавить HTML в элемент следующим образом:

// Add markers 
var marker = new ol.Overlay({ 
      position: ol.proj.fromLonLat(lng1, lat1), 
    positioning: 'center-center', 
    element: $(getMarkerContent()) 
}); 
map.addOverlay(marker); 

function getMarkerContent() { 
    var content = "<div>Name<........>"; 
    return content; 
} 

Я попытался следующие:

  1. Добавлено onclick событие на элемент - это работали

  2. Добавлен marker.on('click', function(evt){});, но он никогда не называется

Есть ли ставка r способ сделать это?

ответ

2

Попробуйте установить обработчик щелчка на элементе наложения, а не непосредственно на оверлей:

var textElement = $('<p class="overlay text">Text</p>'); 
var overlay = new ol.Overlay({ 
    position: pos, 
    element: textElement 
}); 
map.addOverlay(overlay); 

textElement.click(function(evt) { 
    console.log('click'); 
}); 

http://jsfiddle.net/jvdv489j/

Смежные вопросы