代码之家  ›  专栏  ›  技术社区  ›  Rigobert Song

用jquery切换元素可见性!

  •  0
  • Rigobert Song  · 技术社区  · 16 年前

    我有以下标记:

    <div class="header">Text</div>
    <div class="hiddenArea">sdsada</div>
    
    <div class="header">Text2</div>
    <div class="hiddenArea">sdsada</div>
    

    以及以下jquery:

    $('.header').click(function() {
            var t = $(this).next('.hiddenArea').slideToggle();
        });
    

    当hiddenarea被发现时,我想隐藏另一个hiddenarea,如果它是可见的? 我想这样做,以便我可以添加其他标题和隐藏,如果我需要它们。

    更新:

    谢谢你们,最后做了:

    $('#messages .header').click(function() {
      if (!$(this).next().is(':visible')) {
        $('.hiddenArea').slideToggle();
      }
    });
    
    2 回复  |  直到 16 年前
        1
  •  4
  •   redsquare    16 年前

    假设在呈现窗体时有一个隐藏区域可见,则此操作将起作用。 还要注意,您不需要在下一个方法中使用过滤器,因为next只会给您下一个兄弟姐妹。

    $('.header').click(function() {
        var $el = $(this);
        if ( ! $el.next().is('visible') ){
           $('div.hiddenArea:visible').slideUp( function(){
               var t = $el.next().slideDown();
           });
        }
    });
    
        2
  •  1
  •   Rigobert Song    16 年前

    谢谢你们,最后做了:

    $('#messages .header').click(function() {
            if (!$(this).next().is(':visible')) {
                $('.hiddenArea').slideToggle();
            }
        });