后退按钮在jquery mobile中不起作用

时间:2012-07-24 05:55:07

标签: javascript jquery jquery-ui jquery-mobile cordova

您好我有两个html文件index.html和test.html在这两个文件中我添加了后退按钮为data-rel="back"当我从索引到测试然后在test.html上我单击后退按钮然后它是不导航到index.html。我的索引文件是:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">


    <link rel="stylesheet"  href="jquery.mobile/jquery.mobile-1.1.0.css" />
    <link rel="stylesheet" href="docs/assets/css/jqm-docs.css" />
    <link rel="stylesheet" href="docsdemos-style-override.css" />
    <script type="text/javascript" src="jquery.mobile/jquery-1.7.2.min"></script>
    <script type="text/javascript" src="jquery.mobile/jquery.mobile-1.1.0.js"></script>

</head> 
<body> 

    <div id="searchpage" data-role="page" data-theme="b" data-role="content" data-add-back-btn="true">

        <div data-role="header" align="center">

                <a href="#" data-rel="back" data-icon="arrow-l">Back</a>
                <h1>index page</h1>
                <a href="MainMenu.html"  data-icon="grid">Menu</a>          

        </div>

        <div data-role="fieldcontain" class="ui-field-contain ui-body ui-br" >
                     <input type="text" name="stock" id="enterstock" value="" />

                    <input type="submit" id = "verify" data-role="button">

        </div>

        <script type="text/javascript">

            $("#verify").click(function (e)
            {
                e.stopImmediatePropagation();
                e.preventDefault();
                window.location = "Test.html";
                 //$.mobile.changePage('Test.html')
            });


        </script>


    </div>

</body>
</html>

我的test.html如下:

<!DOCTYPE html>
 <html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel="stylesheet"  href="jquery.mobile/jquery.mobile-1.1.0.css" />
    <link rel="stylesheet" href="docs/assets/css/jqm-docs.css" />
    <link rel="stylesheet" href="docsdemos-style-override.css" />
    <script type="text/javascript" src="jquery.mobile/jquery-1.7.2.min"></script>
    <script type="text/javascript" src="jquery.mobile/jquery.mobile-1.1.0.js"></script>
    <!-- Uncomment following line to access PhoneGap APIs (not necessary to use PhoneGap to package web app) -->
    <!-- <script type="text/javascript" charset="utf-8" src="cordova-1.6.1.js"></script>-->


</head> 


<body>

    <div id="cash" data-role="page" data-theme="a" data-role="content" data-add-back-btn="true">
        <div data-role="header" align="center">

            <a href="#" data-rel="back" data-icon="arrow-l">Back</a>
            <h1>Test page</h1>
            <a href="MainMenu.html"  data-icon="grid">Menu</a>


        </div>

        <h1>Testing</h1>
    </div>

</body>

</html>

如果我使用$.mobile.changePage('Test.html'),那么后退按钮工作正常但window.location = "Test.html";则无效。为什么会这样?在blackberry5中,changePage不起作用,因此我无法使用它。任何建议将不胜感激。提前致谢

3 个答案:

答案 0 :(得分:1)

data-rel =“Back”适用于基于单个html页面的导航堆栈构建。

将您的网页添加到相同的html文件中。它按需应用页面增强功能。即使两个页面在同一个html第二页中,也不会加载到dom,直到您更改为该页面。

我想当你尝试用两个htmls玩时,dom不应该表现得那样。不是吗

在同一个html上放两页。这就是他们建议您如何依赖内置的导航系统。

您的页面格式也不正确。首先遵循一个好的教程。

答案 1 :(得分:0)

如上所述,data-rel =“back”适用于单个HTML页面中的页面。

但是,您可以尝试使用history.back()函数。这应该模拟浏览器上的“后退”按钮,所以如果这是你正在寻找的行为,它应该工作。试试看!

答案 2 :(得分:0)

在点击事件中使用以下代码

  

window.history.back();