【问题标题】:Google Map inside Bootstrap AccordionBootstrap Accordion 中的谷歌地图
【发布时间】:2015-06-04 09:23:25
【问题描述】:

我正在尝试在 Bootstrap Accordion 中放置一个 Google 地图。

当我将地图<div id="mapcanvas"> 放入第二个手风琴时,打开第二个手风琴时地图无法正确加载。

$(document).ready(function() {
    $('#map-acc a').click(function (e) {
      e.preventDefault();
      $(this).collapse('show');
      resetMap(map);
    });
});

function resetMap(m) {
    x = m.getZoom(); alert('infunctin');
    c = m.getCenter();
    google.maps.event.trigger(m, 'resize');
    m.setZoom(x);
    m.setCenter(c);
};          

Codepen Link

我做错了什么?

【问题讨论】:

    标签: jquery twitter-bootstrap google-maps accordion


    【解决方案1】:

    codepen

    此 js 代码将为您工作。 我创建了一个全局地图变量,因为在您的情况下,当您调用时它不可用

    reset(map);
    

    js代码

    var map;
    
    function gmap() {
        var mapOptions = {
            zoom: 12,
            center: new google.maps.LatLng(13.0827, 80.2707),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById('mapcanvas'), mapOptions);
    }
    google.maps.event.addDomListener(window, 'load', gmap);
    
    $(document).ready(function() {
        $('#map-acc a').click(function (e) {
          e.preventDefault();
          $(this).collapse('show');
          resetMap(map);
          });           
    
        function resetMap(m) {
            x = m.getZoom(); 
            c = m.getCenter();
            google.maps.event.trigger(m, 'resize');
            m.setZoom(x);
            m.setCenter(c);
        };
    });
    

    【讨论】:

    • 谢谢@yuyokk,我喜欢将 .collapse 类更改为 .collapse .in 请建议如何在 jqery 中执行此操作?
    • 我不确定您到底需要什么。但我猜你需要api.jquery.com/addclass
    • 我喜欢写 $(this).collapse .in ('show'); .in 是添加到手风琴的类,由用户点击,所以我喜欢检查类折叠然后触发重置地图功能@yuyokk
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 2012-02-26
    • 2015-07-04
    • 2015-03-21
    相关资源
    最近更新 更多