0

我发现了很多类似的问题,但不幸的是,没有一个能真正帮助解决我的问题......

我有一个导航列表

<div class="nav-container">
     <ul>
          <li><a href="index.php">Home</a></li>
          <li><a href="contact.php">Contact</a></li>
     </ul>
</div>

当我点击它时,我想给锚标签(而不是'li')一个类。到目前为止,我有:

$(".nav-container li a").click(function(){
    $('.nav-container li a').removeClass('nav-active');
    $(this).addClass('nav-active');
})

它似乎在一瞬间添加了这个类,然后消失了。

我已经设法通过使用'return false;'来申请课程。最后,但它阻止了实际链接一起工作。

我猜一个正在取消另一个,它只需要一些方法来阻止它......不太确定你是如何做到的(抱歉 - jQuery 新手)

提前感谢任何可以解决我的问题的人:)

4

1 回答 1

1

对于此示例,浏览器正在重新加载 index.php 或 contact.php,因此您可能需要将类逻辑放在服务器上。

您的课程正在消失,因为页面正在重新加载,并且这个新页面不知道触发更改的旧页面事件。

要仅在 Javascript 中解决此问题,您需要:

  • 在单击事件上放置一个 cookie,然后在页面加载时将其读回以在新页面上重新应用该类,或者
  • 异步加载每个页面的内容

但是,由于您当前将 contact.php 和 index.php 作为两个独立的页面,因此将类硬编码到每个页面的标记中可能会更容易。

于 2013-01-07T15:16:59.560 回答