Fox Fox - 7 months ago 15
Javascript Question

Load content on tab selected (Foundation)

I am using Zurb Foundation 6 Tabs. I have a javascript question. Here is my html for a 3 tab layout.

<ul class="tabs" data-tabs id="myTabs">
<li class="tabs-title is-active"><a href="#panel1" aria-selected="true">Tab 1 Info</a></li>
<li class="tabs-title" ><a href="#panel2">Tab 2 Info</a></li>
<li class="tabs-title" ><a href="#panel3">Tab 3 Info</a></li>
</ul>

<div class="tabs-content" data-tabs-content="myTabs">
<div class="tabs-panel is-active" id="panel1">
....
</div>
<div class="tabs-panel" id="panel2">
....
</div>
<div class="tabs-panel" id="panel3">
....
</div>
</div>


The tabs work great! However, I want to load content into Tab 3 only when clicked. I will be using ajax to load the content. Foundation 6 docs provide a javascript event that fires when ANY tab is clicked on. See below:

$('#myTabs').on('change.zf.tabs', function() {
console.log('Those tabs sure did change!');
});


I need an event to fire ONLY when panel3 is selected. How to do?

Answer

You can use condition inside 'change.zf.tabs' event, like this:

$('#myTabs').on('change.zf.tabs', function() {

  if($('#panel3:visible').length){
    console.log('Tab 3 is now visible!');
  }

});
Comments