2016-07-23 76 views
0

我無法加載谷歌地圖,而在沒有重新加載窗口的情況下在JQuery中使用load()加載新頁面的內容。jquery load() - 無法加載谷歌地圖

Jquery的Ajax調用:

$("form").submit(function(){ 

     $(".cs-container").load("set-location.php .cs-container"); 
     return false; 

    }); 

我想在當前div.cs-container類元素從另一個set-location.php頁面加載的.cs-container內容。它已成功加載,但Google地圖不會加載g-maps容器放置在.cs-containerset-location.php頁面中,它的腳本文件包含在該頁面的頭部。

google maps工作得很好,但沒有在ajax調用中加載。

當我嘗試這樣的事:

$("form").submit(function(){ 

      $(".cs-container").load("set-location.php"); 
      return false; 

     }); 

它工作得很好,但它在.cs-container加載整個頁面。我不想要。

谷歌地圖初始化腳本是(文件cs-loc.js中):

/*check if geolocaiton supported*/ 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(success); 
} else { 
    error('Geo Location is not supported'); 
} 




function success(position) { 


    var lat = position.coords.latitude; /*getting cordinates*/ 
    var long = position.coords.longitude; 

    var input = document.getElementById("latLong"); 
    input.value = lat + ", " + long; 

    var poos = new google.maps.LatLng(lat,long); /*set lat long for maps*/ 

    var mapProp = { 
     center: poos, 
     zoom:16, 
     mapTypeId:google.maps.MapTypeId.ROADMAP 
    }; 

    var map=new google.maps.Map(document.getElementById("googleMap"),mapProp); /*init maps*/ 

    /*create marker*/ 
    var marker=new google.maps.Marker({ 
     position:poos, 
     title: 'Your Store Location', 
     draggable: true 
     }); 

    marker.setMap(map); /*set marker to map*/ 

    google.maps.event.addListener(marker, 'dragend', function(a) { 
     console.log(a); 
     input.value = a.latLng.lat().toFixed(4) + ', ' + a.latLng.lng().toFixed(4); 
    }); 


} 


success(); 

如何可以解決?

回答

1

你可以在load()回調

$(".cs-container").load("set-location.php .cs-container", function(){ 
    $.getScript('google.maps....').done(function(){   
      $.getScript('cs-loc.js'); 
    });  
}); 
+0

是什麼'地圖....'的平均使用$.getScript()? –

+0

謝謝,但它不起作用 –

+0

什麼錯誤被拋出?什麼或不會發生? – charlietfl