gpt4 book ai didi

javascript - 窗口 onhashchange 不工作

转载 作者:行者123 更新时间:2023-11-28 04:39:40 25 4
gpt4 key购买 nike

我有一个包含两篇文章的网页。加载此页面后,jQuery 用于隐藏两篇文章并向下滑动第一篇文章。用户可以单击导航选项卡查看第二篇文章。然后使用 onhashchange 事件单击后退按钮返回第一篇文章。以下是我的 HTML 代码:

<nav>
<a href='#1'>Article 1</a>
<a href='#2'>Article 2</a>
</nav>

<article id=1>
The first article.
</article>

<article id=2>
The second article.
</article>

这是javascript代码:

function change(hash)
{
$('article:visible').slideUp();
if(hash != '')
{
$(hash).slideDown();
}
else
{
$('article').first().slideDown();
}
}

$('nav a').click(function(){
var id = $(this).attr('href');
change(id);
});

$('article').hide();
change(location.hash);
window.onhashchange = change(location.hash);

观察到的是,尽管单击后退按钮,该页面仍保留在第二篇文章上。我正在使用 firefox 12.0 浏览器,但不知道是什么导致它无法正常工作。任何帮助表示赞赏。谢谢。

最佳答案

你可能想试试:

window.onhashchange = change;

//and read location.hash in the change function instead
function change(){
var hash = location.hash;
...
}

window.onhashchange = function(){
change(location.hash);
}

window.onhashchange = change(location.hash);

如果我的 JS 没有生锈,这会失败,因为

  • 调用 change()
  • 没有返回值的函数返回undefined
  • 您正在将 undefined 分配给 window.onhashchange - 这是错误的,因为您应该将 function 分配给事件。

关于javascript - 窗口 onhashchange 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10577642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com