【问题标题】:jQuery keep parent highlight on submenu hidden navigation arrowsjQuery在子菜单隐藏导航箭头上保持父突出显示
【发布时间】:2014-05-12 11:42:55
【问题描述】:

我需要一些关于 jQuery 的帮助,我真的希望我能在这里找到一些帮助。当我在父项目保持突出显示的隐藏项目上时,我希望使用导航箭头(下一个/上一个)。对于首页的第一个项目,它可以工作,但对于其余的则无效。有人可以帮我吗?

here my fiddle

<div id="cssmenu">
    <ul id="list">
        <li><a href="#home">Home</a></li>
        <ul class="hide"><li><a href="#home2"></a></li></ul>
        <li><a href="#newsletter">Newsletter</a></li>
... </div>

我试着摆弄一些东西:

$(document).ready(function(){
        $('#cssmenu').find('li.active').removeClass('active');

       //adding the state for this parent menu
       $(this).parents('li').addClass('active');


});

我像这样管理我的下一个和上一个按钮:

$( "#next, #prev" ).click( function ( event ) {
            var
                positionActiveClass = menu.find( "> li.active" ).index(),
                menuLength = menu.find( "> li" ).length - 1,
                buttonId = $( this ).attr( "id" );

            if ( buttonId === "next" ) {
                if ( positionActiveClass === ( menuLength ) ) {
                    newElementActiveClass = menu.find( "li" ).eq( 0 );
                    newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );

                    animation( newPositionActiveClass );
                } else {
                    newElementActiveClass = menu.find( "li" ).eq( positionActiveClass + 1 );
                    newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );

                    animation( newPositionActiveClass );
                }
            } else {
                if ( positionActiveClass === 0 ) {
                    newElementActiveClass = menu.find( "li" ).eq( menuLength );
                    newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );

                    animation( newPositionActiveClass );
                } else {
                    newElementActiveClass = menu.find( "li" ).eq( positionActiveClass - 1 );
                    newPositionActiveClass = newElementActiveClass.find( "> a" ).attr( "href" );

                    animation( newPositionActiveClass );
                }
            }

            event.preventDefault();
        } );

【问题讨论】:

  • 无法阅读您的整个代码,但我可以告诉您,您正在以一种非常模棱两可的方式做简单的事情。
  • 您好阿米尔,感谢您的回复。你看我的小提琴了吗?其实比如我想模拟一个item的连续性,home2就是home的连续性。问题是,当我单击下一步时,home 仍然高亮显示,这没关系,但我在隐藏的 home2 上一直被阻止。我无法转到下一项。

标签: javascript jquery menu navigation


【解决方案1】:

在第一个 li 之后有一个额外的 ul,它有一个类 hide。那是做什么用的?只需删除该 ul,一切正常。

【讨论】:

  • 嗨,是的,我在第一个 li 之后添加了这个 ul 类隐藏,以便在我们在 home2 时让 home 仍然处于活动状态。 home2 是家的连续性,我希望用户认为他还在家里。但问题是,当我在 home2 时,导航被阻止了。
猜你喜欢
  • 2013-05-24
  • 1970-01-01
  • 1970-01-01
  • 2013-07-01
  • 2012-05-05
  • 2016-10-30
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
相关资源
最近更新 更多