我正在使用 $.mobile.navigate("#test-page", {id:123})
导航到辅助页面。
从一个页面到另一个页面的导航工作正常....但是状态是空的!
文档清楚地表明状态应该包含执行导航时我需要的所有信息。
这是我正在使用的代码:
$(window).on('navigate', function(event, data) {
console.log("navigated", data);
console.log(data.state.info);
console.log(data.state.direction);
console.log(data.state.url);
console.log(data.state.hash);
if (data.state.hash === "test-page") {
console.log("Test page", data.state.id);
}
});
不幸的是,数据是空的:
{
state:{}
}
HTML 如下:
<div id="test-home" data-role="page">
<div data-role="header">
<h1>Test Home</h1>
</div>
<div data-role="content">
<div id="test-btn">
Click DIV for TEST page
</div>
</div>
<div data-role="footer">
</div>
</div>
<div id="test-page" data-role="page">
<div data-role="header">
<h1>Test Page</h1>
</div>
<div data-role="content">
Test page
</div>
</div>
希望有人能帮忙。谢谢!
最佳答案
$.mobile.navigate
和 navigate
事件,用于跟踪 URL 历史记录和从 URL 传递/获取数据。它们与浏览器的导航(后退/前进)一起工作。
要使用内部导航在 Web 应用程序内动态地在页面之间传递数据,请使用 $.mobile.changePage
。
资源:
使用下面的代码将数据从一个页面传递到另一个页面。
$.mobile.changePage('store.html', {
dataUrl: "store.html?id=123",
data: {
'id': '123'
},
reloadPage: true // force page to reload
});
检索数据
$('.selector').on('pagebeforeshow', function () {
var values = $(this).data("url").split("?")[1];
id = values.replace("id=", "");
console.log(id);
});
关于javascript - jQuery Mobile 导航 - 为什么状态为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15765858/