javascript - 多标签 jquery : how do I show first element in each subtab?

标签 javascript jquery jquery-tabs

我正在尝试在页面上使用嵌套选项卡(如此处:JSFIDDLE),但我遇到了问题,当我选择一个子选项卡时,我不知道如何显示第一个子选项卡并隐藏其他选项卡标签。提前致谢。
我的代码:

jQuery(function(){
jQuery('.nav-tab').click(function(){
      jQuery('.tabs').hide();
      jQuery('#tab-'+$(this).attr('target')).fadeIn(350);
});
jQuery('.sub-nav').click(function(){
      jQuery('.sub-tab').hide();
      jQuery('#sub'+$(this).attr('target')).fadeIn(350);
});

});

HTML代码:

<ul id="nav-box">
  <li><a class="nav-tab" target="1">tab1</a></li>
  <li><a class="nav-tab" target="2">tab2</a></li>
  <li><a class="nav-tab" target="3">tab3</a></li>
</ul>
<div class="tabs" id="tab-1">
  <div class="left-col">
    <ul class="sub-list">
       <li><a class="sub-nav" target="tab1">subnav1</a></li>
       <li><a class="sub-nav" target="tab2">subnav2</a></li>
       <li><a class="sub-nav" target="tab3">subnav3</a></li>
     </ul>
  </div>
  <div class="sub-tab" id="subtab1">sub tab 1</div>
  <div class="sub-tab" id="subtab2">sub tab 2</div>
  <div class="sub-tab" id="subtab3">sub tab 3</div>
</div>
<div class="tabs" id="tab-2">
  <div class="left-col">
    <ul class="sub-list">
      <li><a class="sub-nav" target="tab4">subnav4</a></li>
      <li><a class="sub-nav" target="tab5">subnav5</a></li>
      <li><a class="sub-nav" target="tab6">subnav6</a></li>
    </ul>
  </div>
  <div class="sub-tab" id="subtab4">sub tab 4</div>
  <div class="sub-tab" id="subtab5">sub tab 5</div>
  <div class="sub-tab" id="subtab6">sub tab 6</div>
</div>
<div class="tabs" id="tab-3">
  <div class="left-col">
    <ul class="sub-list">
      <li><a class="sub-nav" target="tab7">subnav7</a></li>
      <li><a class="sub-nav" target="tab8">subnav8</a></li>
      <li><a class="sub-nav" target="tab9">subnav9</a></li>
    </ul>
  </div>
  <div class="sub-tab" id="subtab7">sub tab 7</div>
  <div class="sub-tab" id="subtab8">sub tab 8</div>
  <div class="sub-tab" id="subtab9">sub tab 9</div>
</div>

和样式:

#nav-box li       {display:inline;list-style-type:none;}
.nav-tab,.sub-nav {cursor:pointer;margin:0 20px;}
.tabs             {display:none;}
.left-col         {float:left;}
.sub-tab          {position:relative;top:10px;left:40px;z-index:-1;}

最佳答案

这应该可以为您完成。您只需隐藏所选选项卡中的所有 .sub-tab 元素,然后显示第一个。

jQuery('.nav-tab').click(function(){
      jQuery('.tabs').hide();
      var $targetTab = jQuery('#tab-'+$(this).attr('target'));
      $targetTab.find('.sub-tab').hide().first().show();
      $targetTab.fadeIn(350);
});

这里是修改过的 fiddle http://jsfiddle.net/6yQ8k/40/

关于javascript - 多标签 jquery : how do I show first element in each subtab?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15620704/

相关文章:

javascript - 基于评级的搜索过滤器

javascript - 5 秒后执行 javascript 函数

今天的 javascript-being-dumb 体验

javascript - 为什么我得到 NaN 值?

jquery-ui - IE6 : select inside jQuery tabs does not render dropdown list

jQuery UI 非 ajax 选项卡将整个网站加载到自身中?

javascript - 我可以在网页中打开 OS 原生表情符号选择器吗?

javascript - 在我的 Rails 3 应用程序中使用时出现 jQuery 下拉错误,但在它之外工作?

javascript - 在 JQuery UI 对话框中包含 google 可视化时间线失败

javascript - extjs 从第一个网格中选择记录并将所选记录复制到第二个网格