使用changeHash = false调用changePage()时,位置栏不会更改。
我可以与锚链接具有相同的行为(例如<a href="#three">Blah</a>
)吗?我设置$ .mobile.hashListeningEnabled = false,但位置栏仍然更新。
谢谢你的帮助。
答案 0 :(得分:6)
可以通过设置$.mobile.changePage.defaults.changeHash = false;
示例代码:
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script>
$(document).bind("mobileinit", function(){
$.mobile.changePage.defaults.changeHash = false;
});
</script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Page Title</h1>
</div><!-- /header -->
<div data-role="content">
<a data-role="button" href="#page2">Go to page2</a>
</div><!-- /content -->
</div><!-- /page -->
<div data-role="page" id="page2">
<div data-role="header">
<h1>Page Title</h1>
</div><!-- /header -->
<div data-role="content">
<p>Page content goes here.</p>
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>
答案 1 :(得分:2)
我想用一个漂亮的代码块来回答这个问题,你可以在加载jquery之后加载jquery mobile,在额外的属性'data-change-hash'添加到任何链接标记,这样该位置就不会变化
$('a[data-change-hash="false"]').on('click',function(e) {
$.mobile.changePage($(this).attr('href'),{'changeHash':false});
e.preventDefault();
});
将使您能够执行此操作
<a href='#my-page' data-change-hash="false">Test Me!</a>
,您的网址将保持http://example.com,而不是更改为http://example.com#my-page
答案 2 :(得分:1)
尝试一下:它适用于jQM 1.4.5
$.mobile.hashListeningEnabled = false;
应用后,页面更改不会再改变浏览器的地址栏,就像使用显式调用时一样:
$.mobile.pageContainer.pagecontainer("change","tosomewhere.html",{ changeHash: false });
答案 3 :(得分:0)
虽然我喜欢Chad Brown的解决方案,但我还是采用了一种更简单易懂的方法,专门针对jquery新手。
所以我首先创建一个函数脚本,并且可以放在代码中的任何位置,不需要在特定的处理程序或回调中。
<script>
function goTo(pageID,track){
$.mobile.pageContainer.pagecontainer('change','#'+pageID, {changeHash: track});
}
</script>
然后在我的锚标签中我会像这样调用函数
<a href="javascript:goTo('mypageID',false);">New Trip</a>