0

如何通过重新加载/刷新页面来调用页面?

逻辑:如果用户登录成功,页面将被移动到使用 HTML5 存储作为数据的管理员页面。

前任 :sessionStorage.setItem('MyID','12345');

如果成功登录,字符串 12345 将被带到管理员页面。但是制作12345的过程是从登录表单中衍生出来的。

要读取我使用的数据:sessionStorage.getItem('MyID')在管理员页面上。

我遇到的问题是当jQuery mobile制作翻页时,管理员页面无法读取数据,尽管我必须在数据读取功能块中输入:$(document).ready(function())

但是如果我刷新/重新加载管理员页面,手动数据然后正确读取

我用了 :

function callAdmin(){
   $.mobile.changePage("admin.html");
}

如何使用刷新页面或重新加载页面进行调用页面?或者有没有其他方法可以将结果数据发送到管理员页面?

4

1 回答 1

2

您的主要问题是准备好文件。这是一个常见的 jQuery Mobile 问题,您无需刷新页面即可读取 sessionStorage。

您需要做的是使用正确的 jQuery Mobile 页面事件。文档就绪应该只与基本的 jQuery 一起使用。对于 jQuery Mobile,它通常会在页面成功加载到 DOM 之前触发。

如果您想了解更多关于此的信息,请阅读我的其他答案:jQuery Mobile: document ready vs page events

在jQuery中学习的第一件事是调用$(document).ready()函数中的代码,以便在加载 DOM 后立即执行所有内容。但是,在jQuery Mobile中,Ajax 用于在您导航时将每个页面的内容加载到 DOM 中。因为这个$(document).ready()将在您的第一页加载之前触发,并且用于页面操作的每个代码都将在页面刷新后执行。这可能是一个非常微妙的错误。在某些系统上,它可能看起来工作正常,但在其他系统上,它可能会导致出现不稳定、难以重复的怪异现象。

经典的 jQuery 语法:

$(document).ready() { 

});

为了解决这个问题(相信我,这是个问题)jQuery Mobile开发人员创建了页面事件。简而言之,页面事件是在页面执行的特定点触发的事件。其中一个页面事件是pageinit事件,我们可以这样使用它:

$(document).on('pageinit', function(){

});

我们可以更进一步,使用页面 id 代替文档选择器。假设我们有一个带有 id index的 jQuery Mobile 页面:

<div data-role="page" id="index">
    <div data-theme="a" data-role="header">
        <h3>
            First Page
        </h3>
        <a href="#second" class="ui-btn-right">Next</a>
    </div>

    <div data-role="content">
        <a href="#" data-role="button" id="test-button">Test button</a>
    </div>

    <div data-theme="a" data-role="footer" data-position="fixed">

    </div>
</div>

要执行仅可用于索引页面的代码,我们可以使用以下语法:

$('#index').on('pageinit') {

});
于 2013-04-23T08:53:56.167 回答