【问题标题】:When one aside is open close the others当一侧打开时关闭其他
【发布时间】:2012-12-13 20:46:04
【问题描述】:

我有这个代码:

JS:

    $(document).ready(function(){
       $('nav ul li').click(function () {
          $('aside.' + this.className).toggleClass('opened');
       });
    });

HTML:

<nav>
 <ul>
    <li class="index">Home</li>
    <li class="index2">some text</li>
</ul>
  </nav>

  <aside class="index">
    <div class="picture"></div>
    <h2>Lorem Ipsum</h2>
    <p>Lorem ipsum dolor sit amet</p>
  </aside>

  <aside class="index2">
    <div class="picture"></div>
    <h2>Lorem Ipsum 2</h2>
    <p>Lorem ipsum dolor sit amet 2</p>
  </aside>

现在我希望当我打开 One Aside 时关闭所有其他的 ???

【问题讨论】:

    标签: jquery class click


    【解决方案1】:
    $('aside').not('.' + this.className).removeClass('opened');
    $('aside.' + this.className).toggleClass('opened');
    

    【讨论】:

      【解决方案2】:
      $(document).ready(function(){
         $('nav ul li').click(function () {
            $('aside').removeClass('opened');
            //just do the 1st one at index `0`
            $('aside.' + this.className).eq(0).toggleClass('opened'); 
         });
      });
      

      【讨论】:

      • .toggleClass 在这种情况下不会总是添加类吗?
      • @ExplosionPills 操作员希望像在 OP 中一样添加类,但他想从所有已打开的类中删除该类。
      【解决方案3】:
      $('aside').click(function(){
          $('aside').not(this).removeClass('opened');
      });
      

      【讨论】:

      • 这很好,但现在我无法关闭所有...必须保持打开状态.. 这不好。
      猜你喜欢
      • 2018-12-14
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多