【问题标题】:angularjs show/hide tabs, click same tab hide the contentangularjs 显示/隐藏选项卡,单击相同选项卡隐藏内容
【发布时间】:2015-05-08 18:19:14
【问题描述】:

当我点击选项卡 A 时,显示 A 内容

当我点击标签B时,A内容隐藏B内容显示

但我想要的效果是当我点击标签A时,A内容显示,再次点击A标签内容隐藏。

任何建议都会有所帮助,谢谢

<ul class="row text-center">
                <li class="col col-33">
                    <a href="javascript:void(0);" ng-class="{selected: tab==a}" ng-click="tab = a ">a <i class="icon ion-arrow-down-b"></i></a>
                </li>
                <li class="col col-33">
                    <a href="javascript:void(0); "  ng-class="{selected: tab==b}" ng-click="tab = b ">b <i class="icon ion-arrow-down-b"></i></a>
                </li>
                <li class="col col-33">
                    <a href="javascript:void(0);"  ng-class="{selected: tab==c}" ng-click="tab = c ">c <i class="icon ion-arrow-down-b"></i></a>
                </li>
            </ul>
 <div class="a"  ng-show="tab == a">a</div>
 <div class="b"  ng-show="tab == b">b</div>
 <div class="c"  ng-show="tab == c">c</div>

【问题讨论】:

标签: javascript html angularjs angularjs-ng-show angularjs-ng-class


【解决方案1】:

你需要将ng-click的表达方式改为ng-click="tab = tab=='a'? null: 'a'"

<ul class="row text-center">
    <li class="col col-33">
        <a href="javascript:void(0);" ng-class="{selected: tab=='a'}" ng-click="tab = tab=='a'? null: 'a'">
          a <i class="icon ion-arrow-down-b"></i>
          </a>
    </li>
    <li class="col col-33">
        <a href="javascript:void(0); " ng-class="{selected: tab=='b'}" ng-click="tab = tab=='b'? null: 'b' ">
          b 
        <i class="icon ion-arrow-down-b"></i></a>
    </li>
    <li class="col col-33">
        <a href="javascript:void(0);" ng-class="{selected: tab=='c'}" ng-click="tab = tab=='c'? null: 'c' ">
          c <i class="icon ion-arrow-down-b"></i>
        </a>
    </li>
</ul>
<div class="a" ng-show="tab == 'a'">a</div>
<div class="b" ng-show="tab == 'b'">b</div>
<div class="c" ng-show="tab == 'c'">c</div>

【讨论】:

  • 很高兴为您提供帮助。谢谢 :)
【解决方案2】:

我已经这样回答Implementing angularJs factory or service for bootstrap tabs

和我准备的例子一样here

    <ul>          
    <li ng-class="{active:tab===1}"> 
      <a href ng-click="tab = tab==1 ? a : 1">Tab1</a>               
    </li>           
    <li ng-class="{active:tab===2}"> 
       <a href ng-click="tab = tab==2 ? a : 2">Tab2</a>              
    </li>           
    <li ng-class="{active:tab===3}"> 
      <a href ng-click="tab = tab==3 ? a : 3">Tab3</a>           
    </li>           
    <br><br> 
    <p ng-show="tab === 1"> Tab1 content </p>           
    <p ng-show="tab === 2"> Tab2 content</p> 
    <p ng-show="tab === 3"> Tab3 content</p>        
   </ul>

这里a 注意到但NULL

【讨论】:

    【解决方案3】:

    宁愿将 ng-click 块 null 修改为 tab,因为单击同一个选项卡不会发生任何事情!

    <ul class="row text-center">
          <li class="col col-33">
            <a href="javascript:void(0);" ng-class="{selected: tab=='a'}" ng-click="tab = 
               tab=='a'? tab : 'a'">
              a <i class="icon ion-arrow-down-b"></i>
              </a>
        </li>
        <li class="col col-33">
            <a href="javascript:void(0); " ng-class="{selected: tab=='b'}" ng-click="tab = 
        tab=='b'? tab : 'b' ">
              b 
            <i class="icon ion-arrow-down-b"></i></a>
        </li>
        <li class="col col-33">
            <a href="javascript:void(0);" ng-class="{selected: tab=='c'}" ng-click="tab = 
        tab=='c'? tab : 'c' ">
              c <i class="icon ion-arrow-down-b"></i>
            </a>
        </li>
       </ul>
       <div class="a" ng-show="tab == 'a'">a</div>
       <div class="b" ng-show="tab == 'b'">b</div>
       <div class="c" ng-show="tab == 'c'">c</div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多