我目前正在使用jQuery BBQ hashchange插件来生成哈希更改,这样当我的内容div动画化时,我就有了后退按钮功能。我找到了一个教程,它给了我想要的功能,但我很难让菜单指示它在哪个哈希上。
这是我的基本代码:
HTML
<ul class="tabNavigation">
<li>
<a class="" href="#Contact">
contact
</a>
</li>
<li>
<a class="" href="#Portfolio">
portfolio
</a>
</li>
<li>
<a class="" href="#Services">
services
</a>
</li>
<li>
<a class="" href="#About">
about
</a>
</li>
<li>
<a href="#Landing" class="selected">
home
</a>
</li>
</ul>
jQuery
$(window).bind('hashchange', function () {
var hash = window.location.hash || '#Landing';
$(".Content").animate({marginTop: "1500px"}, '500',
function(){tabContainers.hide().filter(hash).show(), function(){}});
$(".Content").animate({marginTop: "0px"}, '500');
$("ul.tabNavigation a").removeClass("selected");
$("a[hash=" + hash + "]").addClass("selected");
});
CSS
ul.tabNavigation li
{
position: relative;
display: inline-block;
float: right;
font-family: "Baskerville";
font-size: 18px;
list-style-type: none;
text-align: left;
margin-top: 0;
}
ul.tabNavigation li a
{
display: inline-block;
text-decoration: none;
color: white;
margin-right: 5px;
margin-top: 0;
}
ul.tabNavigation li a:hover
{
display: inline-block;
text-decoration: none;
color: #91A493;
margin-right: 5px;
}
ul.tabNavigation li a.selected
{
color: blue;
}
我已经设置好了脚本,以便在页面加载时选择"主页",并且它会显示蓝色。单击链接后,类"selected"将被删除,但行$("a[hash="+hash+"]").addClass("selected");似乎什么都没做,我一辈子都想不出为什么。我仔细研究了教程中的代码,发现它有效,但它在我的页面上不起作用。我真的很感激再多一双眼睛。。。在这一点上,我确信这是一件愚蠢的事情。谢谢你的帮助。
EDIT-删除了标记和CSS中的一些无关信息。
终于找到了答案!当使用2010年的示例时,应该使用与该示例相同的jQuery库。如果我从示例中复制jQuery库并加载它,而不是最新版本,那么一切都像一个魅力。因此,$("a[hash=" + hash + "]").addClass("selected");
行中的某些内容在最新版本中一定不起作用(或已弃用)。