Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery hashchange函数不工作_Jquery_Html_Menu_Fadein_Hashchange - Fatal编程技术网

jQuery hashchange函数不工作

jQuery hashchange函数不工作,jquery,html,menu,fadein,hashchange,Jquery,Html,Menu,Fadein,Hashchange,我很难让jQuery hashchange函数正常工作,这不是我以前使用过的功能,我也不明白为什么它不能正常工作。 我有一个包含6个部分的“关于”页面,每个部分都通过子菜单显示/隐藏,因此一次只显示一个部分。但是我想把散列附加到这些页面上,这样就可以从其他页面链接到这些页面。这是我的代码,我将解释我遇到的问题: jQuery: HTML: 内容在这里 内容在这里 内容在这里 内容在这里 内容在这里 内容在这里 因此,点击.sub菜单成功地添加了哈希值#about01#about0

我很难让jQuery hashchange函数正常工作,这不是我以前使用过的功能,我也不明白为什么它不能正常工作。
我有一个包含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', '')) {