锚定回主页面将此主页面更改为对话框

时间:2017-09-17 22:35:00

标签: jquery-mobile reload

我有两个页面:页面A和页面B,使用jquery mobile构建。在页面A上,我有一个弹出对话框,其中有一个菜单选项,当我点击它时显示页面B.在页面B上有一个后退按钮,当我点击它时会将我带回到页面A.

这是我的问题。如果我的应用程序的用户由于某种原因决定重新加载页面B,然后在重新加载后按下页面B上的后退按钮,页面A将从全屏将其外观更改为对话框视图。我意识到这种奇怪的行为只会发生,a)重新加载页面B和b)从页面A上的弹出菜单调用页面B时,如上所述。

有没有办法告诉jquery mobile不要改变页面A的外观,无论页面B是否重新加载?当然,正如我上面提到的,直接调用Page B(而不是通过弹出菜单)也可以解决我的问题,但我想在页面A上保留我的弹出菜单,我正在寻找更好的解决方案。

以下是导致此问题的代码:

第A页:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
        <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
    </head>
<body>
<div data-role="page">
    <div data-role="header" data-theme="b">
        <h2>Page A</h2>
    </div>
    <div data-role="content">
        <a href='#popupMenu' data-rel='popup' data-transition='slideup' class='ui-btn ui-corner-all ui-shadow ui-btn-inline ui-icon-gear ui-btn-icon-left ui-btn-a'>Menu</a>
    </div>
    <div data-role='popup' id='popupMenu' data-theme='b'>
        <ul data-role='listview' id='listview' data-inset='true' style='min-width:210px;'>
            <li data-role='list-divider'>Choose an action</li>
            <li><a href='pageb.html' data-rel='page'>Page B</a></li>
        </ul>
    </div>
</div>

</body>
</html>

Page B:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css" />
        <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
    </head>
<body>
<div data-role="page">
    <div data-role="header">
        <h2>Page B</h2>
    </div>
    <div data-role="content">
        <a href="#" data-role="button" class='ui-btn ui-btn-inline' data-rel="back">Back</a>       
    </div>

</div>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

您应该在弹出窗口中添加data-history="false",如下所示:

<div data-role='popup' id='popupMenu' data-history="false" data-theme='b'>
    <ul data-role='listview' id='listview' data-inset='true' style='min-width:210px;'>
        <li data-role='list-divider'>Choose an action</li>
        <li><a href='pageb.html' data-rel='page'>Page B</a></li>
    </ul>
</div>

这将阻止JQM将Popup添加到历史堆栈。