问题在于div()
功能。呼唤$('.arrow')
与正在创建的 div 不匹配,因为它尚未附加到 DOM 节点树。您必须在创建标记后调用它。
Remove $('.arrow').svg({onLoad: drawCircle});
from 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});
});
}