JQuery Mobile changePage

我正在设计一个JQuery Mobile应用程序并面临一个问题,我有两个页面, page1.aspxpage2.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()并出现此问题:我希望第二页触发任何加载事件,但都没有工作( pageshowpagechangepagebeforechange ,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

Back

这是一个真实的工作样本,如果有人需要我可以共享一个示例项目。

事件与changePage不同,因为该方法对新url进行Ajax调用,这与window.location.href中的直接调用不同。

你尝试过这种方法吗?

 $('div').live("pageshow", function() { //your code }); 

编辑:看看JQuery Mobile页面,我看到页面更改后触发了事件和事件。

http://jquerymobile.com/test/docs/api/events.html