【发布时间】:2012-07-19 02:10:49
【问题描述】:
<script>
function CurHash(){
var id = parseInt(window.location.hash.replace("#", ""));
alert(id);
}
</script>
<!-- START URL: test.htm#1 -->
<a href='#1' onClick='CurHash()'>#1</a>
<a href='#2' onClick='CurHash()'>#2</a>
<a href='#3' onClick='CurHash()'>#3</a>
如果我们现在在 test.htm#1 并点击链接 #2,alert 会显示 1 个数字,而不是 2,并且在 URL 中的这个哈希更改为 2 之后。当您下次单击 3 时,它将显示 prevouse 2,等等。
这对我来说是个问题,因为我使用哈希在固定高度上滚动我的页面内容(由于架构问题不能使用锚点),并且点击链接后这种行为只会在第二次点击时发生滚动,什么完全错误。
问题:如何更新哈希并获取更新的(不是以前的)值以供进一步使用,而不在浏览器中重新加载页面(页面上已经滚动的所有内容,从服务器重新加载不是好的解决方案)。
【问题讨论】:
-
只是想让您知道为什么:因为“onclick”事件在哈希更新之前触发。
标签: javascript jquery url