jquery 中添加/删除类的问题

发布于 2024-10-10 06:58:20 字数 1251 浏览 2 评论 0原文

我正在尝试创建一个类似于选项卡但带有垂直按钮的菜单导航。当我启动页面时,第一个 li 类被删除,当我单击任何其他链接时,除了显示我的内容 div 之外,没有任何事情发生

。链接应始终在页面开始时处于活动状态。

<script type="text/javascript">
$(document).ready(function() {

    var tabContainers = $('div.pages > div');

    $('div.sidemenu ul.list a').click(function () {
        tabContainers.hide().filter(this.hash).show();

        $('div.sidemenu ul.list li').removeClass('active');
        $(this).addClass('active');

        return false;
    }).filter(':first').click();


});
</script>
<div class="sidemenu">
  <ul class="list"> 
 <li class="active"><a href="#first">Login & Password</a></li>
 <li><a href="#second">Contact Details</a></li>
 <li><a href="#third">Company & Branch Details</a></li>
 <li><a href="#forth">Address Details</a></li>
  </ul>
</div>

<div class="pages">
  <div id="first">
    CONTENT 1
  </div>
  <div id="second">
    CONTENT 2
  </div>
  <div id="third">
    CONTENT 3
  </div>
  <div id="forth">
    CONTENT 4
  </div>
</div>

不知道我在这里错过了什么..也许是因为我刚刚醒来,还在喝第一杯咖啡..;)

I am trying to create a menu navigation sort of like tab's but with vertical buttons.. When I start the page, the first li class is removed and when I click any other link nothign happens other then my content div's being shown..

The first link should always be active on page start.

<script type="text/javascript">
$(document).ready(function() {

    var tabContainers = $('div.pages > div');

    $('div.sidemenu ul.list a').click(function () {
        tabContainers.hide().filter(this.hash).show();

        $('div.sidemenu ul.list li').removeClass('active');
        $(this).addClass('active');

        return false;
    }).filter(':first').click();


});
</script>
<div class="sidemenu">
  <ul class="list"> 
 <li class="active"><a href="#first">Login & Password</a></li>
 <li><a href="#second">Contact Details</a></li>
 <li><a href="#third">Company & Branch Details</a></li>
 <li><a href="#forth">Address Details</a></li>
  </ul>
</div>

<div class="pages">
  <div id="first">
    CONTENT 1
  </div>
  <div id="second">
    CONTENT 2
  </div>
  <div id="third">
    CONTENT 3
  </div>
  <div id="forth">
    CONTENT 4
  </div>
</div>

Not sure what I am missing here.. Maybe its cuase I just woke up and still on my first cup of coffee.. ;)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

肩上的翅膀 2024-10-17 06:58:20

您将该类添加到 元素中,但将其从其父

  • 元素中删除。
  • $(this).addClass('active');  // "this" is the <a> that received the event
    
       // This removes "active" from the <li>
    $('div.sidemenu ul.list li').removeClass('active');
    

    看起来您打算让

  • 拥有该类。所以你应该这样做:
  • $(this).parent().addClass('active');
    

    或者如果你不介意我在其中混合一点 DOM API:

    $(this.parentNode).addClass('active');
    

    现在去补充一下! ;o)

    You're adding the class to the <a> element, but removing it from its parent <li> element.

    $(this).addClass('active');  // "this" is the <a> that received the event
    
       // This removes "active" from the <li>
    $('div.sidemenu ul.list li').removeClass('active');
    

    Looks like you intend for the <li> to have the class. So you'd do this instead:

    $(this).parent().addClass('active');
    

    Or if you don't mind me mixing a little DOM API in:

    $(this.parentNode).addClass('active');
    

    Now go get a refill! ;o)

    老娘不死你永远是小三 2024-10-17 06:58:20

    您将“活动”类添加到 A-Element

    $(this).addClass('active');
    

    我猜您想将其添加到 LI-Element,因此您可以添加

    $(this).parent().addClass('active');
    

    或注册 LI-Element 上的 onclick

    you add the "active" class to the A-Element

    $(this).addClass('active');
    

    i guess you want to add it to the LI-Element, so either you add

    $(this).parent().addClass('active');
    

    or you register the onclick on the LI-Element

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文