jQuery mobile:记住之前的页面变量

时间:2014-01-07 14:24:47

标签: javascript jquery html html5 jquery-mobile

一个按钮应该重定向到页面AAA或页面BBB。 此决定应取决于之前页面上按钮的选择。

第1页:#home

  • 按钮A:指向#setpage
  • 的链接
  • 按钮B:指向#setpage
  • 的链接

第2页:#setpage

  • 输入:用户可以设置内容
  • 按钮:只有一个按钮(指向页面#AAA或页面#BBB的链接)

第3页:#AAA

  • 如果按钮A单击第1页
  • ,则用户应该在此处

第4页:#BBB

  • 如果按钮B点击了第1页
  • ,则用户应该在这里

我想,我可以使用我的手机/浏览器的localStorage(我正在使用jQM + PhoneGap),但这是最好的解决方案还是有更好的方法?

2 个答案:

答案 0 :(得分:2)

@ezanker的答案外,您还可以检索与所点击的按钮相关的所有详细信息以及{{1>上的上一页下一页页面事件。

pagebeforechange

可以从 data 对象获取这些详细信息。例如,从$(document).on("pagebeforechange", function (event, data) 对象中检索单击/链接按钮详细信息。 上一页页面data.options.link下一页页面data.options.fromPage

此事件在转换时会为当前页面及其移动的页面触发两次。

data.toPage
  

<强> Demo

答案 1 :(得分:1)

如果这是一个单页应用,您可以在单击主页上的A和B按钮时切换设置页面按钮的HREF。

  

这是 DEMO

$(document).on("pageinit", "#Home", function(){
    $('.btnAB').on("click", function(e){
        var id = $(this).prop("id");
        if (id === 'btnB'){
            $('#btnSetpage').prop('href', '#BBB');
        } else {
            $('#btnSetpage').prop('href', '#AAA');
        }
    });
});

上面的脚本处理2个按钮的click事件(它们具有相同的类)。它会看到单击了哪个按钮,然后设置了设置页面上一个按钮的href。

<div data-role="page" id="Home">
    <div data-role="header">
         <h1>Home</h1> 
    </div>
    <div data-role="content">
        <a class="btnAB" id="btnA" href="#setpage" data-role="button">A</a>
        <a class="btnAB" id="btnB" href="#setpage" data-role="button">B</a>
    </div>
</div>

<div data-role="page" id="setpage">
    <div data-role="header">
         <h1>setpage</h1> 
    </div>
    <div data-role="content">
        <a id="btnSetpage" href="#AAA" data-role="button">Submit</a>
    </div>
</div>

<div data-role="page" id="AAA">
    <div data-role="header">
         <h1>AAA</h1> 
    </div>
    <div data-role="content">
        I am AAA
        <a href="#Home" data-role="button">Home</a>
    </div>
</div>

<div data-role="page" id="BBB">
    <div data-role="header">
         <h1>BBB</h1> 
    </div>
    <div data-role="content">
        I am BBB
        <a href="#Home" data-role="button">Home</a>
     </div>
</div>