【问题标题】:Javascript div breaks my google mapJavascript div 破坏了我的谷歌地图
【发布时间】:2014-01-25 01:24:47
【问题描述】:

您好,我正在使用下面的 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>

当我删除 style="display:none; 一切正常,但我不想在页面加载时显示地图。

有什么帮助吗??

【问题讨论】:

  • Java? Java 在哪里?
  • 你怎么打电话给showlayer?因为您的代码依赖于您正确指定layer
  • OOPSSS 抱歉。我的意思是Javascript
  • 更新了帖子标题。
  • @Takis,请参阅我之前的评论。你怎么打电话给showlayer

标签: javascript php google-maps


【解决方案1】:

在您执行document.getElementById(layer).style.display = "block"; 之后调用初始化,因为我认为存在一个错误,它不会在指定的纬度和经度中正确地居中地图。因此,在显示 div 之后加载地图。

【讨论】:

  • div 显示后如何加载地图?抱歉这个问题,但我是 javascript 的新手。 :(
  • 你能帮帮我吗?
  • 现在你在加载 dom 时调用 initialize(),在 $.ready -> jQuery(document).ready(function(){initialize();});相反,在 document.getElementById(layer).style.display = "block"; 之后调用 initialize()
猜你喜欢
  • 2018-12-30
  • 1970-01-01
  • 2014-05-15
  • 1970-01-01
  • 2012-07-23
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
相关资源
最近更新 更多