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。
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); } } });
演示