【问题标题】:next previous jquery arrow highlight menu下一个 上一个 jQuery 箭头突出显示菜单
【发布时间】:2018-08-17 05:45:54
【问题描述】:

我正在尝试在我的菜单下添加一个下一个和上一个按钮,以突出显示我的项目。

当我用鼠标光标在菜单上单击每个部分时,它会起作用。我突出显示了每个项目。

我的问题是,当我们单击下一个或上一个按钮时,它没有突出显示我的菜单上的项目。

我的 Jquery 代码有什么问题?

这里是我的Fiddle

<div id="cssmenu">
    <ul id="list">
        <li class='active'><a id="testSlide1" href='#'><span>Home</span></a></li>
        <li><a id="testSlide2" href='#'><span>Products</span></a></li>
        <li><a id="testSlide3" href='#'><span>About</span></a></li>
        <li><a id="testSlide4" href='#'><span>Contact</span></a></li>
    </ul>
</div>
<nav class="da-arrows">

<button id="PrevButton">Previous</button>
<button id="NextButton">Next</button>
</nav>

<script>
    $("a").click(function(){
      // If this isn't already active
      if (!$(this).parent().hasClass("active")) {
        // Remove the class from anything that is active
        $("li.active").removeClass("active");
        // And make this active
        $(this).parent().addClass("active");
      }
    });

    $('a').click(function(e){
        e.stopPropagation();
    });

    var list = $("#list");
    var li = list.children();
    var lengthMinusOne = li.length - 1;
    var index = 0;
    var num = $("#list li").length;

    var prevLi = $(li[0]).hasClass("active");

    $("#NextButton").click(function(){
       index++;
       if (index > lengthMinusOne) index = 0;
       prevLi.removeClass("active");
       prevLi = $(li[index]).addClass("active");
    });
    $("#PrevButton").click(function(){
       index--;
       if (index < 0) index = lengthMinusOne;
       prevLi.removeClass("active");
       prevLi = $(li[index]).addClass("active");
    });
</script>

我该怎么做?

【问题讨论】:

    标签: jquery html css menu


    【解决方案1】:
    $("#NextButton").click(function(){
       index++;
       if (index > lengthMinusOne) index = 0;
       prevLi.removeClass("active");
       prevLi = $(li[index]).addClass("active");
    });
    

    演示:

    http://jsfiddle.net/tJ9aj/

    【讨论】:

    • 您好,RGS,Txx 为您提供解决方案,效果很好。实际上,我想用我的 CSS 上定义的箭头替换用于测试的按钮。问题它不再起作用了。任何想法 ?
    • @user979974,请将 div 包裹在锚标签内,并将锚标签的 id 设置为“PrevButton”。
    • 我改变了,$('#NextButton").click(function(){ by $(".da-arrows-next").click(function(){ 它似乎工作。我删除div id。你怎么看?这是一个干净的解决方案吗?
    猜你喜欢
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    相关资源
    最近更新 更多