Проблема в функции div()
.Вызов $('.arrow')
не соответствует создаваемому div, потому что он еще не был присоединен к дереву DOM-узла.Вы должны позвонить после того, как маркер был создан.
Удалите $('.arrow').svg({onLoad: drawCircle});
из функции div()
и вызовите ее позже.
function div() {
var m = document.createElement('DIV');
m.innerHTML = '<div class="arrow"></div>';
return m;
}
Полагаю, лучший способ - добавить прослушиватель для события простоя карты в конце функции init()
.
function init() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 1,
center: new google.maps.LatLng(0, 0),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
marker = new RichMarker({
map: map,
position: new google.maps.LatLng(30, 50),
draggable: true,
flat: true,
anchor: RichMarkerPosition.MIDDLE,
content: div()
});
google.maps.event.addListenerOnce(map, 'idle', function() {
$('.arrow').svg({onLoad: drawCircle});
});
}