2014-01-25 3 views
0

Привет, я использую код javascript ниже, чтобы отображать карты google в шоу/скрытии div.Javascript div разбивает мою карту google

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> 

Когда я удалить стиль = "дисплей: нет; все работает нормально, но я не хочу, чтобы отобразить Карта на странице загрузки.

Любая помощь ??

+1

Java? Где Java? –

+0

Как вы называете 'showlayer'? Потому что ваш код зависит от того, как вы правильно определяете 'layer'. – Andy

+0

OOPSSS извините за это. Я имею в виду Javascript – Takis

ответ

0

Вызов инициализации после того, как вы document.getElementById(layer).style.display = "block";, потому что есть ошибка, я думаю, что не центрирования карты правильно в указанном лат и долго. Так загрузите карту, после отображения div.

+0

Как я могу загрузить карту после отображения div? Извините за вопрос, но я новичок в javascript. :( – Takis

+0

Не могли бы вы мне помочь? – Takis

+0

Теперь вы вызываете initialize(), когда dom загружается, в $ .ready -> jQuery (document) .ready (function() {initialize();}); Вместо этого, вызвать initialize() после document.getElementById (layer) .style.display = "block"; – Leo

Смежные вопросы