我是jQmobile的新手,并且一直关注jqMobile网站上的示例。我尝试使用多页模板格式来使后退按钮正常工作(硬件按钮)。但是,当我进入第二页并按(硬件)后退按钮时,它只是退出应用程序,而不是返回第一页。这是我正在使用的示例代码:
<head>
<title>PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="phonegap-1.2.0.js"></script>
<meta name="viewport" content="width=device-width,height=device-height,initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript">
//This is your app's init method. Here's an example of how to use it
function init() {
document.addEventListener("deviceready", onDR, false);
}
function onDR(){
//document.addEventListener("backbutton", backKeyDown, true);
navigator.notification.alert("PhoneGap is working");
//boot your app...
}
function backKeyDown() {
// do something here if you wish
}
$(document).bind("mobileinit", function(){
$.mobile.touchOverflowEnabled = true;
$.mobile.defaultPageTransition = 'fade';
});
</script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<!-- Start of first page -->
<div data-role="page" id="foo">
<div data-role="header">
<h1>Foo</h1>
</div><!-- /header -->
<div data-role="content">
<p>I'm first in the source order so I'm shown as the page.</p>
<p>View internal page called <a href="#bar">bar</a></p>
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
</div><!-- /footer -->
</div><!-- /page -->
<!-- Start of second page -->
<div data-role="page" id="bar">
<div data-role="header">
<h1>Bar</h1>
</div><!-- /header -->
<div data-role="content">
<p>I'm the second in the source order so I'm hidden when the page loads. I'm just shown if a link that references my ID is beeing clicked.</p>
<p><a href="#foo">Back to foo</a></p>
</div><!-- /content -->
<div data-role="footer">
<h4>Page Footer</h4>
</div><!-- /footer -->
</div><!-- /page -->
</body>
预先感谢您的所有答复。
最佳答案
您的设备可能不支持hashchange
事件。
您可以使用hashchange
事件检查设备的兼容性,该事件用于更新哈希:
if ("onhashchange" in window) {
//...
}
资料来源:jQuery - hashchange event
从jQuery Mobile Docs:
哈希变化与点击无关,例如用户
单击后退按钮,通过hashchange事件处理,
使用Ben Alman的hashchange绑定到窗口对象
特殊事件插件(包含在jQuery Mobile中)。当哈希值更改时
发生时(以及第一页加载时),hashchange事件
处理程序会将location.hash发送到$ .mobile.changePage()
功能,然后加载或显示引用的页面。
资料来源:http://jquerymobile.com/test/docs/pages/page-navmodel.html