javascript - 为什么我必须重新加载页面才能正确显示 map ?

标签 javascript jquery jquery-mobile arcobjects arcgis-js-api

我已经问过这个问题了here ,不幸的是问题无法解决,所以我在这里提问:)

我有一个 JQM 页面,其中显示了 map 。愚蠢的是,为了正确显示 map ,我必须重新加载页面。

这是第一次加载页面时 map 的显示方式: Site before reload

这是刷新页面后的显示方式: Site before reload

这是我的代码:

var map;
    require([
                "esri/map",
                "dojo/dom",
                "esri/layers/ArcGISTiledMapServiceLayer",
                "dojo/domReady!"
            ],
            function (Map, dom, Tiled) {
                map = new Map("map", {
                    logo: false,
                    minZoom: 1,
                    maxZoom: 11
                });
                var luftbild = new Tiled(URL);
                map.addLayer(luftbild);
    });

这就是我设计 map 的方式:

<style>
    html, body, #map {
        padding: 0;
        margin: 0;
        height: 100%;
    }
</style>

以及我如何显示它:

<div data-role="page" style="background-color:red" ...>
    <!--Header-->
        ....
    <!--/Header-->
    <!--Content-->
        <div id="map">
        </div>
    <!--/Content-->
</div>

编辑:

放置此行代码后:

$(document).on("pageshow","#page",function(){ // initialize map and show
});

map 现在看起来像这样: enter image description here

是否可以将宽度和高度设置为 100%?

最佳答案

map 需要具有定义宽度和高度的 Canvas 。在 Jquery mobile 中,处理页面的方式与普通 html 页面不同。即一页(即 data-role=page 的 div)一次可见,其他则不可见。因此,在任何页面上初始化 map 都应该使用名为 pageshow 的 jquery 移动特定页面事件来完成

$(document).on("pageshow","#page",function(){ // initialize map and show
});

关于javascript - 为什么我必须重新加载页面才能正确显示 map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26403889/

相关文章:

javascript - 通过js添加动态onclick="location.href=到按钮

ios - 从 HTML5 创建 native iOS/Android 应用程序

jquery 1.7.1 - 由查询字符串中的括号 "("引起的语法错误

javascript - AngularJS 应用程序 : how can I fetch date from the view and use it in the controller?

javascript - 这个javascript的目的,它使用了什么样的设计模式?

javascript - 设置只读Ckeditor

javascript滚动到新页面上的位置

javascript - 嵌套 AJAX 回调函数的可读性

javascript - ajax 从另一个页面部分加载

javascript - 如何在 onsen-ui 中使用自动完成功能?