我使用bpopup plugin处理ajax弹出窗口。我需要显示弹出与谷歌地图。显示弹出窗口是没有问题的。
js
$(document).on('click', '.aboutBranch', function(e){
e.preventDefault();
$.ajax({
type: 'POST',
url: '/ajax/show-branch',
data: {delivery_id: ..., branch_id: ...},
success: function(html) {
$('#BranchBox').html(html);
$('#BranchBox').bPopup();
}
});
});在模板中,将ajax附加到#BranchBox很简单。谷歌地图周围也有一些东西。我尝试了同步和异步加载地图。但这两种方法都不起作用。有时会加载地图,但大多数情况下不会。超时无济于事。你有没有将谷歌地图附加到ajax加载的内容(即使是弹出窗口)的经验?谢谢你的建议。
模板
<div id="map_canvas" style="width: 100%; height: 400px;"></div>
<script type="text/javascript">
function initialize() {
var mapOptions = {
center: { lat: parseFloat(latFromPhp), lng: parseFloat(lngFromPhp)},
zoom: 15
};
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var marker = new google.maps.Marker({
position: new google.maps.LatLng(parseFloat(latFromPhp), parseFloat(lngFromPhp)),
title: titleFromPhp
});
marker.setMap(map);
}
//async load
function loadScript() {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&' + 'callback=initialize';
document.body.appendChild(script);
}
window.onload = loadScript;
//sync load (googleapis is included in main layout)
google.maps.event.addDomListener(window, 'load', initialize);
</script>发布于 2014-11-28 07:32:34
bPopup()的第二个参数)。在这种情况下,API会触发地图的resize-event (地图的大小将被重新计算并加载缺少的切片)$('#BranchBox') .bPopup({},function(){google.maps.event.trigger(window,'resize',{});});
https://stackoverflow.com/questions/27165398
复制相似问题