2013-01-07 43 views
0

我发现很多类似的问题,但遗憾的是没有人真的与我的问题帮助...jQuery - 我点击时如何在li元素上添加一个类?

我有一个导航列表

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

我想给一类锚标签(未'李'),当我点击它。到目前为止,我有:

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

它似乎添加类为一秒钟,然后消失。

我已经设法通过使用'返回false'来申请类。最后,它会阻止实际的链接在一起工作。

我猜一个出来并取消了其他,它只是需要一些方法来阻止它......不太清楚你如何做到这一点(对不起 - 新的jQuery)

在此先感谢任何人谁可以将我的问题排序:)

回答

1

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

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

在JavaScript中单独解决这个问题,你要么需要:

  • 上的click事件上放置一个Cookie,然后读出来的页面加载重新申请新的页面上的课,或
  • 负载每一页的内容异步

不过,既然你现在有contact.php和index.php文件作为两个独立的页面,它可能是更容易只是硬编码类到每个标记页。

+0

谢谢@PassKit,我不确定我是否理解,但是...我使用的WAMP通常适用于这些类型的东西吗? – LT86

+0

这不是一个WAMP或堆栈问题。假设您在index.php上,然后单击“联系人”。 Javascript事件触发器,类的变化,但在同一时间,一个请求被发送到服务器来获取contact.php。当contact.php加载时,它与index.php无关,因为它不知道contact.php已被点击。 – PassKit

相关问题