Вот начало
<div id="map">
<ul>
<li>marker</li>
</ul>
</div>
Я собираюсь предложить jQuery в своем ответе.
$('#map li').each(function() {
$(this).css({ cursor: 'pointer' }).click(function() {
if (($this).find('.overlay').length > 0)) return;
// figure out here where the contents for the div will come from. AJAX perhaps
var contents = '<strong>hello</strong>';
$(this).append('<div class="overlay">' + contents + '</div>');
});
});
Разместите ваши точки с помощью CSS. Вы, вероятно, захотите дать #map position: relative
и затем абсолютно позиционировать элементы списка.
Затем создайте CSS для .overlay, чтобы он правильно накладывался.