JQuery Mobile changePage
我正在设计一个JQuery Mobile应用程序并面临一个问题,我有两个页面, page1.aspx
和page2.aspx
,我必须从page1
重定向到page2
。 目前我使用window.location.href
进行重定向,但它也是在地址栏中显示加载。
为了避免这种情况,我想使用$.mobile.changePage
。
问题:
现在重定向之前我在localStorage
变量中设置一个值,基于page2.aspx
load事件上的这个值,我必须绑定页面。 它与window.location.href
工作正常,但是在使用$.mobile.changePage
它正在重定向,但是如果我正在刷新它正在加载的页面,则在转到page2.aspx
后没有触发load事件。 所以我的问题是在显示page2.aspx
加载事件时必须触发。
任何人都可以告诉我为什么在使用$.mobile.changePage
没有加载$.mobile.changePage
?
如果有人知道解决方案,请尽快回复,非常紧急。
提前致谢。
Page1.aspx的:
localStorage.setItem("pageCode", "NULLException"); //$.mobile.changePage("../MessageDialog.aspx", "slide", true, true); $.mobile.changePage("../MessageDialog.aspx", { transition: "slide", changeHash: true, reverse: false });
Page2.aspx:
$('div').live("pageshow", function () { if (localStorage.getItem("pageCode") != null) { if (localStorage.getItem("pageCode") == "NullException") { $('#lblDialogHeader').text("Error"); $('#lblDialogMessage').text("Sorry"); document.getElementById("btnOK").setAttribute("onclick", 'Test()'); } } }
HTML
似乎当您调用指定转换的changepage
时,第二页似乎被“注入”第一页。 您可以轻松检查它,因为$(document).ready(function(){})
在第二页中不起作用。
我在Windows Phone 7应用程序中使用Cordova ,我将脚本location.href
更改为使用$.mobile.changepage()
并出现此问题:我希望第二页触发任何加载事件,但都没有工作( pageshow
, pagechange
, pagebeforechange
,body onload
, $(document).ready
等)。
以下是我的调查结果,可能对您和其他人有所帮助:
https://stackoverflow.com/questions/8153236/jquery-mobile-changepage/index.html是我的开始页面,如下所示
some stuff here Call second page
现在正在运行的secondpage.html 。 了解无法使用pagechange
或$(document).ready
,我们注意到我们可以使用pageinit来模拟“页面加载”。
App title
your stuff here for second page
这是一个真实的工作样本,如果有人需要我可以共享一个示例项目。
事件与changePage不同,因为该方法对新url进行Ajax调用,这与window.location.href中的直接调用不同。
你尝试过这种方法吗?
$('div').live("pageshow", function() { //your code });
编辑:看看JQuery Mobile页面,我看到页面更改后触发了事件和事件。