Que*_*low 1 html javascript jquery dom
我有一个包含两篇文章的网页.加载此页面后,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>
Run Code Online (Sandbox Code Playgroud)
这是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);
Run Code Online (Sandbox Code Playgroud)
观察到的是,尽管单击后退按钮,页面仍保留在第二篇文章中.我使用的是Firefox 12.0浏览器,不知道是什么导致它无法正常工作.任何帮助表示赞赏.谢谢.
您可能想尝试:
window.onhashchange = change;
//and read location.hash in the change function instead
function change(){
var hash = location.hash;
...
}
Run Code Online (Sandbox Code Playgroud)
要么
window.onhashchange = function(){
change(location.hash);
}
Run Code Online (Sandbox Code Playgroud)
window.onhashchange = change(location.hash);
Run Code Online (Sandbox Code Playgroud)
如果我的JS没有生锈,那就失败了,因为
change()
undefined
undefined
到window.onhashchange
-这是错误的,因为你应该分配function
到的事件. 归档时间: |
|
查看次数: |
14204 次 |
最近记录: |