jQuery hashchange函数不工作
我很难让jQuery hashchange函数正常工作,这不是我以前使用过的功能,我也不明白为什么它不能正常工作。jQuery hashchange函数不工作,jquery,html,menu,fadein,hashchange,Jquery,Html,Menu,Fadein,Hashchange,我很难让jQuery hashchange函数正常工作,这不是我以前使用过的功能,我也不明白为什么它不能正常工作。 我有一个包含6个部分的“关于”页面,每个部分都通过子菜单显示/隐藏,因此一次只显示一个部分。但是我想把散列附加到这些页面上,这样就可以从其他页面链接到这些页面。这是我的代码,我将解释我遇到的问题: jQuery: HTML: 内容在这里 内容在这里 内容在这里 内容在这里 内容在这里 内容在这里 因此,点击.sub菜单成功地添加了哈希值#about01#about0
我有一个包含6个部分的“关于”页面,每个部分都通过子菜单显示/隐藏,因此一次只显示一个部分。但是我想把散列附加到这些页面上,这样就可以从其他页面链接到这些页面。这是我的代码,我将解释我遇到的问题:
jQuery: HTML:
内容在这里
内容在这里
内容在这里
内容在这里
内容在这里
内容在这里
因此,点击.sub菜单
成功地添加了哈希值#about01
#about02
等。但是相关部分没有淡入,而是在#section01
中不断淡入,我不明白为什么。在引入hashchange之前,我已经让这个函数很好地工作了,但是现在相关的部分没有显示出来,只是总是
#section01
,不管你点击哪个。子菜单。而不是使用。attr hook
我会使用数据钩子和.data
。这不是问题所在
实际上,您从未比较过“hook”值是否与哈希匹配
if ($(this).attr('hook') === hash.replace('#about', '')) {
如果散列是空的(我想),您还需要显示第一个部分,但我相信您可以找到答案
您确定正在触发hashchange
回调吗?@ExplosionPills我想是的,哈希正在添加到url中,但相关部分正在淡入。在回调函数中放置一个console.log/alert,看看是否正确called@ExplosionPills嗯,也许不是,我以前从未使用过hashchanges,所以我对它们有点不熟悉。虽然正在添加散列,但只要单击子菜单项,就可以在#section01中保持淡入状态。
<div id="content-wrap">
<div id="sub-menu">
<li id="sub-menu-01" class="sub-menu" hook="01"><a href="#about01">SECTION01</a></li>
<li id="sub-menu-02" class="sub-menu" hook="02"><a href="#about02">SECTION02</a></li>
<li id="sub-menu-03" class="sub-menu" hook="03"><a href="#about03">SECTION03</a></li>
<li id="sub-menu-04" class="sub-menu" hook="04"><a href="#about04">SECTION04</a></li>
<li id="sub-menu-05" class="sub-menu" hook="05"><a href="#about05">SECTION05</a></li>
<li id="sub-menu-06" class="sub-menu" hook="06"><a href="#about06">SECTION06</a></li>
</div>
<div id="section01" class="about">
CONTENT GOES HERE
</div>
<div id="section02" class="about">
CONTENT GOES HERE
</div>
<div id="section03" class="about">
CONTENT GOES HERE
</div>
<div id="section04" class="about">
CONTENT GOES HERE
</div>
<div id="section05" class="about">
CONTENT GOES HERE
</div>
<div id="section06" class="about">
CONTENT GOES HERE
</div>
</div>
if ($(this).attr('hook') === hash.replace('#about', '')) {