我在页面上有一个div,它应该包含内容和一些我用来加载哪些内容的链接。
<div id="thecontent">
</div>
<div id="callers">
<div class="caller">1234</div>
<div class="caller">15</div>
<div class="caller">9</div>
<div class="caller">324</div>
</div
我使用jquery监视何时单击.caller
,然后我从数据库中获取记录并将其显示在#thecontent
中。
如何更改网址以反映正在查看的记录。我的意思是一个看起来像这样的网址。我需要在html标记或jquery中做些什么来实现这一点吗?
http://site.com/#1234
答案 0 :(得分:2)
您有两种选择:
使“调用者”菜单使用<a href="#1234">1234</a>
等实际锚元素。添加click
事件处理程序以拦截并执行XHR提取。
在click
处理程序上,将window.location.hash
设置为目标。
对于这两个选项:
加载页面时,请检查window.location.hash
的值以查看它是否附带目标,并在指定目标时获取该目标。
答案 1 :(得分:2)
首先要设置哈希值,可以使用
window.location.hash = '1234';
您还可以在使用以下页面加载页面时读取此值:
window.location.hash.substr(1); // .hash also returns the '#' character, so use substr to remove it
考虑到这一点,您可以在.ready()
中执行此操作$(function() {
var hash = window.location.hash.substr(1);
if(hash != '') {
$('#callers .caller:contains('+hash+')').click();
}
});
在.caller
click()函数中,您还需要更新哈希值。
答案 2 :(得分:0)
:
location.href = '#'+$(this).html();
答案 3 :(得分:0)
查看http://www.20thingsilearned.com/,历史记录{j}的javascript应该能为您提供所需的一切。
它使用现代历史管理调用pushstate()
等,如果它们可用,或者使用哈希标记更新href,并检查所述主题标签是否存在以确定应显示哪些内容。这真的很好。