1

In this Html, I have used nav-item and links. If I click update1 button, it should navigate to tabs-2 nav-link. I tried, but the page is navigating, the nav-link is not getting active.Can you please help me out?

Html:

         <ul class="nav nav-tabs" role="tablist">
          <li class="nav-item">
            <a class="nav-link active" data-toggle="tab" href="#tabs-1" role="tab">Video consultation</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" data-toggle="tab" href="#tabs-2" role="tab">In-clinic consultation</a>
          </li>
          <li class="nav-item">
            <a class="nav-link" data-toggle="tab" href="#tabs-3" role="tab">Time Off</a>
          </li>
        </ul>
        <div class="tab-content mb-5">
          <div class="tab-pane active" id="tabs-1" role="tabpanel">
            <div class="carddesign" style="padding: 20px;">
                 <div>form1</div>
                 <button>update1<button>
            </div>
          </div>
           <div class="tab-pane" id="tabs-2" role="tabpanel">
            <div class="row carddesign" style="padding:0px 15px 40px;">
               <div>form2</div>
               <button>update2<button>
            </div>
          </div>
        </div>

3 Answers 3

1

You have navigation issues because of class="nav-link active" that's not dynamic so your display div will be always nav number one.
To fix that you have to do some change.
I suppose you are developing an angular app so first in your .ts file you need to add two things :

  1. add a variable named for example selectedTab and we pass an initial value of 1.
  2. add this function :
 public onClickSelectTab(navIndex: number) {
    return (this.selectedTab = navIndex);
  }

to resume your .ts have to look like this:

 selectedTab = 1;

  public onClickSelectTab(navIndex: number) {
    return (this.selectedTab = navIndex);
  }

After that update you have to do some changes in your .html file

  1. add a (click) param to your a tags like this:
  <li class="nav-item">
      <a
        class="nav-link active"
        (click)="onClickSelectTab(1)"
        data-toggle="tab"
        href="./#tabs-1"
        role="tab"
        >Video consultation</a
      >
    </li>
    <li class="nav-item">
      <a
        class="nav-link"
        data-toggle="tab"
        (click)="onClickSelectTab(2)"
        href="./#tabs-2"
        role="tab"
        >In-clinic consultation</a
      >
    </li>
    <li class="nav-item">
      <a
        class="nav-link"
        (click)="onClickSelectTab(3)"
        data-toggle="tab"
        href="./#tabs-3"
        role="tab"
        >Time Off</a
      >
    </li>
  1. add dynamic class to your div :
  <div
      class="tab-pane"
      [ngClass]="{'active':selectedTab===1 } "
      id="tabs-1"
      role="tabpanel"
    >
      <div class="carddesign" style="padding: 20px;">
        <div>form1</div>
        <button>update1</button>
      </div>
    </div>
    <div
      class="tab-pane"
      [ngClass]="{'active':selectedTab===2 } "
      id="tabs-2"
      role="tabpanel"
    >
      <div class="row carddesign" style="padding: 0px 15px 40px;">
        <div>form2</div>
        <button>update2</button>
      </div>
    </div>
    <div
      [ngClass]="{'active':selectedTab===3 } "
      class="tab-pane"
      id="tabs-3"
      role="tabpanel"
    >
      <div class="carddesign" style="padding: 20px;">
        <div>form3</div>
        <button>update3</button>
      </div>
    </div>
  </div>

see an example here.

Sign up to request clarification or add additional context in comments.

1 Comment

This solution is still not working properly,
0

You better replace <button>update1<button> on <a href="#tabs-2">update1</a>

If you using angular use <a [routerLink]="['/tabs-2']">update1</a>

Or do it in code

<button (click)="navigateToTabs2()">update1<button>

constructor(private router: Router) { }

navigateToTabs2() {
  this.router.navigate(['/tabs-2']);
}

3 Comments

Thank you for your response. this will not help, since it is nav-link, not routerLink.
<a data-toggle="tab" href="#tabs-3" role="tab"> <button>update1<button></a>
My solution looks like this, its changing the tabs content, but current tab is not getting active.
0

html:

       <ul class="nav nav-tabs" role="tablist">
          <li class="nav-item">
            <a class="nav-link active" [ngClass]="{'active':selectedTab===1 }" data-toggle="tab" href="#tabs-1" role="tab">Video consultation</a>
          </li>
          <li class="nav-item">
            <a class="nav-link"  [ngClass]="{'active':selectedTab===2 }" data-toggle="tab" href="#tabs-2" role="tab">In-clinic consultation</a>
          </li>
          <li class="nav-item">
            <a class="nav-link"  [ngClass]="{'active':selectedTab===3 }" data-toggle="tab" href="#tabs-3" role="tab">Time Off</a>
          </li>
        </ul>
     <div class="col-md-3 col-sm-12" style="margin-left: 70%;" 
       (click)="updateSevenProfile()">
          <a (click)="onClickSelectTab(3)" data-toggle="tab" href="#tabs-3" 
               role="tab">
             <button>Update1</button>
          </a>
        </div>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.