我想在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;
}
我试过以下:
向on element添加了onclick
个事件 - 这个工作
添加了marker.on('click', function(evt){});
但从未调用
有更好的方法吗?
答案 0 :(得分:3)
尝试在叠加元素上设置点击处理程序,而不是直接在叠加层上设置:
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');
});