如何使用$ .mobile.changePage导航回一页

时间:2011-11-21 00:44:31

标签: jquery-mobile

我可以找到关于向后导航的所有JQuery Mobile文档假设我将使用锚标记执行此操作,并建议我将data-rel="back"添加到标记。

我没有从标签导航,我正在与PhoneGap混音,这意味着我正在调用像PhoneGap.something(goForwardOnSuccess,goBackwardsOnFailure);这样的javascript函数

其中

function goFowardOnSuccess()
{
    $.mobile.changePage('#next', { transition: 'pop' });
}
function goBackwardOnFailure()
{
    $.mobile.changePage(/* I HAVE NO IDEA WHAT GOES HERE */);
}

我使用这类东西的主要原因之一就是在本地代码中忙着做一些事情不要碰我......"点击屏蔽屏幕" loading"东西,然后在完成功能中关闭它。

然而,我发现当我从屏幕上的按钮尝试时,我会弹出"到位,我发现自己回到主页(回到两个级别)。

关于如何从纯粹的javascript向后导航,文档令人抓狂。任何线索都会非常好。

另请注意,我倾向于从任何地方弹出这些繁忙的屏幕,因此明确地将转换编码回我想要的屏幕并不是真正的选择。

6 个答案:

答案 0 :(得分:34)

在文档中肯定不清楚,但它有一些小的暗示。

尝试使用:

$.mobile.back();

答案 1 :(得分:4)

data-rel="back"用于这样的事情是有道理的: <a href="#" data-rel="back" ...

但最好在javascript代码博客中使用history.back();,即

.....
.....  
    var cId = $(this).val();
    // do something with control ID then
.....
.....
    goBackParent();
}
function goBackParent(){
     history.back();
}

答案 2 :(得分:3)

为什么不使用data-rel="back"作为后退按钮的属性,这将使用户返回1页。

也相当于history.back()

答案 3 :(得分:2)

您将返回“两个级别”,因为如果您通过

以编程方式触发 changePage
$.mobile.changePage('#next', { transition: 'pop' });

并省略所有其他选项,您将触发两个功能:

  • changePage
  • hashChange

通常在常规转换时,hashChange被阻止,而在向后转换时,应该阻止changePage(这里不确定......)。因此,在您的情况下,您有(想要的)hashChange和不需要的(changePage)转换。

检查JQM docs以获取可在changePage调用中传递的选项,或查看1.0源代码#3140以获取所有可用选项。我还会尝试在函数调用中传递 changeHash:false fromHashChange:true ,看看会发生什么。

如果你想深入挖掘,你将不得不寻找 ignoreNextHashChange 以及它的值如何通过JQM改变。

答案 4 :(得分:0)

致电history.back()即可。

答案 5 :(得分:0)

从重定向的位置添加changeHash:true。 然后使用&#39; history.back()&#39;或者&#39; history.go(-1)&#39;从您当前的页面。它只需要你回1页。

$.mobile.changePage("yourpage.html",{ transition: "flip", changeHash: true});