Google Maps API和Javascript以及$(文档).ready(function()

时间:2011-11-10 05:55:14

标签: google-maps jquery google-maps-api-3

我正在尝试实施谷歌地图功能,需要弄清楚我的代码中应该放置以下脚本的位置:

google.maps.event.addDomListener(window, 'load', initialize);

function initialize() {
    var myLatLng = new google.maps.LatLng(<?php echo $latitude; ?>, <?php echo $longitude; ?>);

var myOptions = {
    zoom: 15,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
    }
map = new google.maps.Map(document.getElementById("map-canvas-1"),myOptions); 

var myOptions2 = {
    zoom: 15,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.HYBRID
    }
map2 = new google.maps.Map(document.getElementById("map-canvas-2"),myOptions2);  

  var myOptions3 = {
    zoom: 15,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.SATELLITE
    }
  map3 = new google.maps.Map(document.getElementById("map-canvas-3"),myOptions3);  

  var marker = new google.maps.Marker({
  position: myLatLng, 
  map: map, 
  title:"Map1" }); 

  var marker = new google.maps.Marker({
  position: myLatLng, 
  map: map2, 
  title:"Map2" }); 


  var marker = new google.maps.Marker({
  position: myLatLng, 
  map: map3, 
  title:"Map3" }); 

  map3.getStreetView().setPosition(myLatLng);
  map3.getStreetView().setVisible(true);

}

目前,此代码位于$(document {.ready(function())中,它似乎工作正常,但它会导致以下jQuery / ajax函数停止工作:

jQuery.ajax({
    url: sURL + 'billingEventDetail/ajaxGetTaxClasses/',
    dataType: 'json',
    success: function(data) {
        taxClassData = data;
        jQuery.each(taxClassData.description , function(key, value){
            jQuery('#sel_tax_class').append(new Option(value, key));
        });
    }
});

jQuery.ajax({
    url: sURL + 'billingEventDetail/ajaxGetBillingEventDetails/',
    dataType: 'json',
    success: function(data) {
        taxQualifierData = data;
        jQuery.each(taxQualifierData.description , function(key, value){
            jQuery('#sel_tax_qualifier').append(new Option(value, key));
        });
    }
});

当我暂时禁用谷歌地图代码时,JQuery / Ajax会再次开始工作。为什么我在让这两段代码一起工作时遇到问题?也许谷歌地图代码并不在$(文件{.ready(function()??

)内

有没有人对我有任何想法?

1 个答案:

答案 0 :(得分:2)

你不应该把你的谷歌地图填入int document.ready。你已经在window.load上注册了一个事件监听器,它调用了initialize(),所以这应该足够了。将它全部移出document.ready。我不能保证这会导致你的ajax出现问题。