2014-01-25 124 views
0

嗨,我使用下面的JavaScript代碼來顯示/顯示隱藏div內的谷歌地圖。Javascript div打破我的谷歌地圖

PS我希望在頁面加載時默認隱藏地圖。所以我寫了這一點:

<script type="text/javascript"> 

     // <![CDATA[ 
     function showlayer(layer) { 
      var mymap = document.getElementById(layer).style.display; 
      if (mymap == "block") { 
       document.getElementById(layer).style.display = "none"; 
      } else { 
       document.getElementById(layer).style.display = "block"; 
      } 
     } 
     // ]]> 


    </script> 

<div id="mymap" style="display:none;"> 
<? include $this->loadTemplate('map.php'); ?> 
</div> 

的map.php文件包含下面的代碼:

<script src="http://maps.googleapis.com/maps/api/js?v=3.6&amp;sensor=false" type="text/javascript"></script> 
    <script type="text/javascript"> 
     function initialize() { 
      var mapLatlng = new google.maps.LatLng(<?php echo $this->link->lat . ', ' . $this->link->lng; ?>); 
      var mapOptions = { 
       zoom: <?php echo ($this->link->zoom?$this->link->zoom:13); ?>, 
       center: mapLatlng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       scrollwheel: false 
      }; 
      var map = new google.maps.Map(document.getElementById("map"), mapOptions); 
      var marker = new google.maps.Marker({ 
       position: mapLatlng, 
       map: map, 
       title:"<?php echo addslashes($this->link->link_name); ?>" 
      }); 
     } 
     jQuery(document).ready(function(){initialize();}); 

    </script> 

當我刪除樣式=「顯示:無;一切工作正常,但我不希望顯示的地圖上的頁面加載。

任何幫助??你做document.getElementById(layer).style.display = "block";

+1

Java? Java在哪裏? –

+0

你是怎麼叫'showlayer'的?因爲你的代碼依賴於你正確指定'layer'。 – Andy

+0

OOPSSS很抱歉。我的意思是Javascript – Takis

回答

0

調用初始化因爲我覺得不指定正確爲中心的地圖中的錯誤拉特和長。因此,在顯示div之後加載地圖。

+0

如何在顯示div後加載地圖?對不起這個問題,但我是JavaScript中的newby。 :( – Takis

+0

你能幫我嗎? – Takis

+0

現在你在加載dom的時候調用initialize(),在$ .ready - > jQuery(document).ready(function(){initialize();}); 相反,在document.getElementById(layer).style.display =「block」後調用initialize(); – Leo