2015-06-04 59 views
0

我正在试图在Bootstrap手风琴中放置Google Map。Bootstrap手风琴中的谷歌地图

当我把地图<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

我在做什么错?

回答

0

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); 
    }; 
}); 
+0

谢谢@yuyokk我想改变.collapse类.collapse。在请建议如何在jqery中做到这一点? – raju

+0

我不确定你需要什么。但我想你需要https://api.jquery.com/addclass/ – yuyokk

+0

我可以写$(this).collapse .in('show'); .in是一个添加到手风琴的类,其中一个用户是clicke,所以我喜欢检查类的崩溃,然后触发重置地图函数@yuyokk – raju