单击按钮时如何展开/折叠手风琴标签?

时间:2019-03-21 20:14:27

标签: angular typescript primeng

我有此手风琴,因此为了展开/折叠,我单击了该标签上的任意位置,但是我希望能够在单击 ONLY时展开/折叠“点击我”按钮上,而不是在“手风琴”标签上。谁能指出我正确的方向?提前非常感谢!

这是我的代码:

LIVE DEMO

<p-accordionTab header="Accordion Tab 1" [selected]="true">
   <p-header>
      Accordion Tab 1
      <span>
         <button (click)="myFunction($event)">Click me</button>
      </span>
  </p-header>
   <ul>
     <li>Colors</li>
   </ul>
</p-accordionTab>

2 个答案:

答案 0 :(得分:0)

基于您正在使用的手风琴组件的docs,您可以使用 Programmatic Control 来实现所需的功能。

这里是DEMO,我在这里修改了您的代码。所有选项卡都被禁用,并且只能通过点击其标题中的“点击我”按钮来以编程方式打开/关闭它们。


UPD 新的DEMO,具有:

  • multiple="true"
  • 默认情况下已打开所有标签页
  • 覆盖disabled属性的自定义样式

答案 1 :(得分:0)

css文件:-

.zippy{
 border: 1px solid #ccc;
 border-radius:2px;
}
.zippy-heading{
 font-weight: bold;
 padding: 20px;
 cursor: pointer;
 background: #f09b9b;
}
.zippy-body{
 padding: 20px;
}
.expanded{
 background: #b3b0b0;
}

HTML视图:-

<div class="zippy" style="padding:40px;">
  <div class="zippy-heading"
    [class.expanded]="isExpandedBikes"
    (click)="onBikeClick()">
    {{bike}}
    <span
      class="fa"
      [class.fa-angle-down] ="!isExpandedBikes"
      [class.fa-angle-up]="isExpandedBikes"
      (click)="onBikeClick()" style="font-size: 20px; position: absolute;right: 50px;"></span>
  </div>
  <div *ngIf="isExpandedBikes" class="zippy-body">
    <li *ngFor ="let data of bikeContent">
      {{data}}
    </li>
  </div>
</div>

组件文件:-

constructor() { 
 this.bike = "Bikes";
 this.bikeContent=["My First Bike","My Second Bike","My Third Bike"];
}

对于组件文件中的按钮Fxn:-

 onBikeClick(){
  this.isExpandedBikes =! this.isExpandedBikes;
 }