javascript - 如何在 typescript 中突出显示选项卡菜单中的事件选项卡

标签 javascript html css angular typescript

我正在使用 typescript 和组件以 Angular 使用 js 选项卡菜单,但我无法添加通过更改其背景颜色来突出显示事件选项卡的功能

COMPONENT.HTML 中的 TABMENU 代码

<div class="tabnav">
        <button class="buttontab left" (click)="openTab('direct')" >Direct Receipt</button>
        <button class="buttontab right" (click)="openTab('sto')" >STO Receipt</button>
</div>

COMPONENT.TS 中的 JS 函数

 openTab(tab) : void {
    var tabname = tab;
    var i;
    var x = document.getElementsByClassName("content");
    for (i = 0; i < x.length; i++) {
      (<any>x[i]).style.display = "none"; 
    }
    document.getElementById(tabname).style.display = "block";   
  }

最佳答案

可以这样做:

@Component({
  selector: "my-app",
  template: `
    <div class="tabnav">
      <button [ngClass]="{ active: isActive(1) }" (click)="openTab(1)">
        Direct Receipt
      </button>
      <button [ngClass]="{ active: isActive(2) }" (click)="openTab(2)">
        STO Receipt
      </button>

      <div [hidden]="!isActive(1)">
        <h4>Direct Receipt Content</h4>
      </div>
      <div [hidden]="!isActive(2)">
        <h4>STO Receipt Content</h4>
      </div>
    </div>
  `,
  styles: [
    `
      .active {
        border-color: blue;
      }
    `
  ]
})
export class AppComponent {
  name = "Angular";
  tab = 1;

  isActive(tabId): boolean {
    return this.tab === tabId;
  }

  openTab(tabId): void {
    this.tab = tabId;
  }
}

Online Demo

关于javascript - 如何在 typescript 中突出显示选项卡菜单中的事件选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58371239/

相关文章:

javascript - 如果 Redux Store 中的某个状态是可观察的,我应该在每个需要它的组件中订阅它,还是在一个地方订阅并作为输入传递?

javascript - 标记 HTML 以允许右键单击上下文菜单中的 "open in a new tab"选项的正确方法

html - 设置表单中列表项的样式

javascript - 动画在特定时刻开始

javascript - 使用范围 slider 更改 div 高度

html - 边框不适应列表样式 : none;

javascript - 当在rails中使用jquery Submit()而不是submit_tag时,地理编码器搜索失败

javascript - Jquery 移动底部导航栏

html - 嵌套行填充溢出到 Bootstrap 5 中的父行

javascript - kendo-ui:网格中带有三元运算符的自定义模板