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),但这是最好的解决方案还是有更好的方法?

如果这是一个单页应用程序,您可以在单击主页上的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事件(它们具有相同的类)。 它会看到单击了哪个按钮,然后设置了setpage上一个按钮的href。

 

Home

A B

setpage

AAA

I am AAA Home

BBB

I am BBB Home

除了@ezanker的回答,您还可以检索与单击按钮以及pagebeforechange事件上的上一页下一页相关的所有详细信息。

 $(document).on("pagebeforechange", function (event, data) 

这些细节可以从数据对象中获得。 例如,从data.options.link对象中检索单击/链接按钮详细信息。 上一页 data.options.fromPage下一页 data.toPage

对于当前页面和要移动的页面,此事件在转换时会触发两次。

 $(document).on("pagebeforechange", function (e, data) { /* when webpage is first initialized, .link and .toPage are undefined */ if (data.options.link && data.toPage) { if (data.toPage[0].id == "setpage") { var button = data.options.link[0].text; /* for demo */ $("#setpage [data-role=content]").html("Clicked button: " + button); } } }); 

演示