23

I was experimenting with programatically changing tabs using jQuery. I tried to implement the solution given by @MasterAM here. However, the Chrome console shows the error Uncaught TypeError: undefined is not a function

Here is my HTML:

<div id="click-me-div">Click Me</div>

 <ul class="nav nav-tabs">
    <li class="active"><a href="#fruits" data-toggle="tab">I like Fruits</a></li>
    <li><a href="#veggies" data-toggle="tab">I like Veggies Too</a></li>
    <li><a href="#samosas" data-toggle="tab">But Samosa's Rock</a></li>
</ul>

<div class="tab-content">
    <div class="tab-pane active" id="fruits">Apple, Kiwi, Watermellon</div>
    <div class="tab-pane" id="veggies">Kale, Spinach, Pepper</div>
    <div class="tab-pane" id="samosas">Awesome, Spine Tingling, Explosive</div>
</div>

And here is the jQuery:

$(document).ready(function() {
    $("#click-me-div").click(function() {
        alert('yes, the click actually happened');
        ('.nav-tabs a[href="#samosas"]').tab('show');
    });
});

The desired outcome is that, if I click "Click Me", the active tab should change to the "samosas" tab.

What am I doing wrong?

Community
  • 1
  • 1
Dirty Penguin
  • 4,212
  • 9
  • 45
  • 69

2 Answers2

56

You left out the jQuery function

$(document).ready(function() {
    $("#click-me-div").click(function() {
        alert('yes, the click actually happened');
        $('.nav-tabs a[href="#samosas"]').tab('show');
    });
});

Fiddle

Motti Horesh
  • 798
  • 8
  • 10
4

Try this code

You can use onclick() function and path id name of tab.

<a onclick='ActivTab("Security")' class="nav-link" data-toggle="tab" href="#Security" aria-controls="profile" role="tab" id='Security'>Security</a>


    <script>
         $(document).ready(function(){
             ActivTab('Security');
         });
         function ActivTab(id){
//           $('.nav-tabs a[href="#' + id + '"]').tab('show');
             $('.nav-tabs a[href="#' + id + '"]').trigger('click');
         };
     </script>
Ayman Elshehawy
  • 2,746
  • 23
  • 21
  • Hi Ayman, welcome to SO! It might be a good idea to explain what your snippet is doing and why you have done what you did so that newcomers will find it easier to understand. – Conrad Parker Sep 20 '17 at 10:15