当前位置: 首页 > 知识库问答 >
问题:

jQuery手风琴为当前Href及其父Href添加类

宰烈
2023-03-14

在手风琴菜单中单击href时,我在向两个元素添加类时遇到问题。删除“当前”类的实例,将“当前”类添加到单击的子菜单项及其父项。我已经让手风琴工作,只要我点击父菜单项,子菜单就会出现。在本例中,我的意思是我单击“第二个”并显示“项目2.1”和“项目2.1”。单击“第三个”和“第二个”,其子项将隐藏,而第三个及其子项将显示。我想做的是,单击一个子元素后,将“当前”添加到该子href元素及其父href(例如,单击href ID“two-one”并将“当前”类添加到该元素及其“nav subtitle”ID),然后从当前href中删除“当前”类。

这是HTML:-

        <ul id="navigation">

            <li>
                <a href="index.html" class="nav-subtitle current">
                    Home
                </a>       
            </li>

            <li> 
                <a href="#" class="nav-subtitle">
                Second
                </a>
                <ul>
                    <li><a href="#" id="two-one">Item 2.1</a></li>
                    <li><a href="#" id="two-two">Item 2.2</a></li>
                </ul>
            </li>

            <li>
                <a href="#" class="nav-subtitle">
                    Third
                </a>
                <ul>
                    <li><a href="#" id="three-one">Item 3.1</a></li>
                    <li><a href="#" id="three-two">Item 3.2</a></li>
                    <li><a href="#" id="three-three">Item 3.3</a></li>                      
                </ul>
            </li>
        </ul>

我尝试了以下jQuery,但“parent”元素最终将“current”类添加到li元素,而不是带有class nav副标题的href。如果我指定“导航字幕”ID,则整个功能失败:-

$("#two-one").click(function(){
        $( "#nav-subtitle" ).removeClass("current");
        $(this).parent().parent().parent("#nav-subtitle").addClass("current");   
        $(this).addClass("current");
});

共有1个答案

茅才
2023-03-14

我相信这段代码做了我需要它做的事情。

$("#two-one").click(function(){
        $('a.current').removeClass('current');
        $(this).parent().parent().siblings().addClass('current');
        $(this).addClass('current');
});

从类为“current”的元素中删除“current”类,将“current”添加到父href,最后将类“current”添加到单击的href。

 类似资料:
  • 我正在使用href链接和可折叠标题制作手风琴菜单。问题是,当我单击子手风琴时,它会折叠父级。有什么解决方法吗? 这是更新的版本,它正在工作。解决方案是使用“”(如@Renan Arajo所述)并删除手风琴上的标题设置。 https://codepen.io/CocoSkin/pen/vRQyZP

  • 我正在使用jQuery手风琴来隐藏一些数据。 accordion标题是一个带有一些标题的表格。有一个标题,我不希望你点击它,因为手风琴事件会触发。 所以 手风琴是可折叠的,如果您单击Test2(类nofunction),手风琴事件不应触发。但是如果您单击Test或其他表头,手风琴应该会触发事件。 我可以添加这个功能吗? 更新测试http://jsfiddle.net/e3Q8d/,包括jQuery

  • 问题内容: 我正在使用jQuery手风琴插件来制作一些数据的手风琴。然后,我希望用户能够向手风琴添加更多数据。我已经将手风琴设置为可以正常运行,然后创建了一个函数,该函数为与手风琴语义匹配的手风琴添加了“列表项”。 是否可以“更新”手风琴,使其与新添加的元素一起工作,而无需将新数据保存到数据库并刷新页面? 像这样: 还是像jQuery 1.3中添加的live事件之类的东西,有人知道吗? 问题答案:

  • 缺乏脑力,似乎无法解决以下问题: 这里完全是:https://jsfiddle.net/77zqme17/ 我试图为这个jQuery手风琴切换WAI-ARIA属性,但由于它是一个允许多个打开面板的手风琴,如果您两次单击同一个选择(注1),我的单击事件将正确触发,但如果您单击一个兄弟并仍然打开原始选择(注2),则不会正确触发。 注1:点击任务两次正确更改ARIA属性为aria选择="true"ari

  • 所以我坚持使用一个插件,它提供了一个简单的手风琴,但不提供自动折叠。我试图创建一个简单的脚本,但我没有成功。 让我提供一些DOM结构: 假设结构不言自明,但有一点是:当类被删除时,它会扩展项目(在我看来,这与构建手风琴的方式相反...)。 不知何故,触发jQuery脚本的唯一方法是针对标头()。它应该做的是找到每个没有类并添加它,同时将其从父类中删除。 我最好的猜测是这段jQuery。 谁能告诉我

  • 问题内容: 我正在将Ajax手风琴用于多个窗格。在回发时,当前打开的窗格始终重置为第一个窗格。 有什么办法可以解决这个问题? 谢谢 抢。 问题答案: 我通过在查询字符串中传递当前窗格索引,然后将当前窗格设置回目标页面的Page_Load事件中的索引,来解决此问题。 谢谢, 抢。