我遇到了jQuery的问题以及如何动态处理网址.如果我有一个带链接的页面,每个人都有一个id来调用一个函数和一个id,我想做的就是这个.如何更改特定链接的URL并将该URL用作书签.以下是我的代码
<div data-role="page" id="#listview">
<div data-role="header">
<h1>List</h1>
</div>
<div data-role="content">
<ul data-role="listview" id="carlist">
<li><a href="#" onclick="cardetails('1')">Acura</a></li>
<li><a href="#" onclick="cardetails('2')>Audi</a></li>
<li><a href="#" onclick="cardetails('3')>BMW</a></li>
</ul>
</div>
<div data-role="footer">
<h4>Page Footer</h4>
</div>
Run Code Online (Sandbox Code Playgroud)
因此,当您单击列表中的汽车时,名为cardetails且参数为1的函数将返回到服务器并获取id = 1的汽车的cardetails.我的问题不是这样,但是当JSON数据返回时,我希望将url更改为cardetails#1或类似的东西.因此,它可以识别用户的位置,浏览器可以将其添加到其历史记录中,如果用户为该URL添加书签,则浏览器将能够找到具有相同数据的确切页面.
我正在使用$.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);
}
});
Run Code Online (Sandbox Code Playgroud)
不幸的是,数据传递为空:
{
state:{}
}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
希望有人可以提供帮助.谢谢!