我有两个页面:页面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>
答案 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
添加到历史堆栈。