Leaflet 传单地图元素位于DOM中,但不';不渲染?

Leaflet 传单地图元素位于DOM中,但不';不渲染?,leaflet,Leaflet,传单正在渲染中,因为我可以在DOM中看到它的所有元素,但其他元素都不存在。我看到的都是灰色的 唯一可以让地图分幅显示的方法是删除地图容器上的position:absolute,但这会创建一堆混乱的地图分幅。我检查了GIT的历史记录,看看我是否意外地改变了一种风格,但没有运气 以下是初始化地图的代码: // init everything on page show $("#map").live('pageshow',function() { if(window.localStorage.g

传单正在渲染中,因为我可以在DOM中看到它的所有元素,但其他元素都不存在。我看到的都是灰色的

唯一可以让地图分幅显示的方法是删除地图容器上的position:absolute,但这会创建一堆混乱的地图分幅。我检查了GIT的历史记录,看看我是否意外地改变了一种风格,但没有运气

以下是初始化地图的代码:

// init everything on page show
$("#map").live('pageshow',function() {
    if(window.localStorage.getItem("lat")!=undefined) { var lat = window.localStorage.getItem("lat")} else { var lat = '49.264'; }
    if(window.localStorage.getItem("lng")!=undefined) { var lng = window.localStorage.getItem("lng")} else { var lng = '-123.123'; }
    try {         
        var map = window.map
        map = new L.Map('map-container');
        var cloudmadeUrl = 'http://{s}.tile.cloudmade.com/006282296d334e66a593e55aca6b5ce0/54803/256/{z}/{x}/{y}.png';
        var cloudmadeAttribution = 'Map Data © 2011 OpenStreetMap';
        var cloudmade = new L.TileLayer(cloudmadeUrl, {maxZoom: 18, attribution: cloudmadeAttribution});
        map.setView(new L.LatLng(lat, lng), 12).addLayer(cloudmade);
        map.invalidateSize();
    } catch(e) {console.log(e)}
    userMarkers[1] = new L.Marker( new L.LatLng( lat,lng ) , {icon: new iconUser, clickable: true} );
    map.addLayer( userMarkers[1] );
});
该环境包括jquerymobile。不幸的是,控制台没有记录任何错误,当我检查时,上面的localStorage确实保存了有效的LatLng值

截图:


有什么猜测吗?

我不确定问题是如何开始的,但为了解决它,我删除了所有地图容器样式,然后声明:

#map-container {
    position:absolute;
    top:0;
    bottom:0;
    left:0;
    right:0;
    margin: 0;
    padding: 0;
}
现在问题已经解决了。我以前从未使用过这种样式,因此我无法推测问题是如何开始的