根据选择显示和隐藏div

时间:2016-09-22 12:21:36

标签: javascript jquery html selection show-hide

我想隐藏所有非活动的div。但是,当我重新加载所有标签内容时,我会进入一个。下面是UI面临问题的屏幕截图。

enter image description here

以下是代码。



$('.tab a').on('click', function (e) {
      
      e.preventDefault();
      
      $(this).parent().addClass('active');
      $(this).parent().siblings().removeClass('active');
      
      target = $(this).attr('href');
    
      $('.tab-content > div').not(target).hide();
      
      $(target).fadeIn(600);
      
    });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form animated fadeInDown ">
          
          <ul class="tab-group">
    		<li class="tab active"><a href="#roles">Roles</a></li>
            <li class="tab "><a href="#user">User</a></li>
    		<li class="tab "><a href="#portfolio">Portfolio</a></li>
    		<li class="tab "><a href="#programs">Programs</a></li>
    		<li class="tab "><a href="#projects">Projects</a></li>
    		<li class="tab "><a href="#phases">Phases</a></li>
    		<li class="tab "><a href="#tasks">Tasks</a></li>
          </ul>
          
          <div class="tab-content">
                   
            <div id="roles" >   
              <h1> Roles coming soon</h1>
              
              </div>
    		
    		<div id="user">   
              <h1>Users added soon</h1>
    
            </div>
    		
    		<div id="portfolio">   
              <h1>Portfolio added soon</h1>
    
            </div>
    		
    		<div id="programs">   
              <h1>Programs added soon</h1>
    
            </div>
    		
    		<div id="projects">   
              <h1>Projects added soon</h1>
    
            </div>
    		
    		<div id="phases">   
              <h1>Phases added soon</h1>
    
            </div>
    		
    		<div id="tasks">   
              <h1>Tasks added soon</h1>
    
            </div>
    		
    		
            
          </div>
          
    </div>
&#13;
&#13;
&#13;

我尽可能多地尝试但却无法做到这一点。非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

只需应用给定的CSS,除了您的代码似乎对我有效。

&#13;
&#13;
//See the first tab visible by default
$($('.tab-group > li.active').children('a').attr('href')).show();

$('.tab a').on('click', function (e) {

  e.preventDefault();

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

  target = $(this).attr('href');

  $('.tab-content > div').not(target).hide();
  
  $(target).fadeIn(600);

});
&#13;
.tab-content div{
  display: none;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form animated fadeInDown ">

      <ul class="tab-group">
        <li class="tab active"><a href="#roles">Roles</a></li>
        <li class="tab "><a href="#user">User</a></li>
        <li class="tab "><a href="#portfolio">Portfolio</a></li>
        <li class="tab "><a href="#programs">Programs</a></li>
        <li class="tab "><a href="#projects">Projects</a></li>
        <li class="tab "><a href="#phases">Phases</a></li>
        <li class="tab "><a href="#tasks">Tasks</a></li>
      </ul>

      <div class="tab-content">

        <div id="roles">   
          <h1> Roles coming soon</h1>

          </div>

        <div id="user">   
          <h1>Users added soon</h1>

        </div>

        <div id="portfolio">   
          <h1>Portfolio added soon</h1>

        </div>

        <div id="programs">   
          <h1>Programs added soon</h1>

        </div>

        <div id="projects">   
          <h1>Projects added soon</h1>

        </div>

        <div id="phases">   
          <h1>Phases added soon</h1>

        </div>

        <div id="tasks">   
          <h1>Tasks added soon</h1>

        </div>



      </div>

</div>
&#13;
&#13;
&#13;