在选定的选项卡上加载内容(基础)

Fox*_*Fox 6 javascript css ajax jquery zurb-foundation

我正在使用Zurb Foundation 6 Tabs.我有一个javascript问题.这是我的html为3选项卡布局.

<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>
Run Code Online (Sandbox Code Playgroud)

标签效果很好!但是,我只想在单击时将内容加载到Tab 3中.我将使用ajax加载内容.Foundation 6 docs提供了一个javascript事件,当单击任何选项卡时会触发该事件.见下文:

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

我只需要选择panel3时才需要触发事件.怎么做?

小智 11

您可以在'change.zf.tabs'事件中使用条件,如下所示:

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

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

});
Run Code Online (Sandbox Code Playgroud)


Pie*_*iet 5

对于Foundation 6(当前版本为6.2.1),您应使用以下代码获取已更改选项卡的ID.

$('#myTabs').on('change.zf.tabs', function()
{
    var tabId = $('div[data-tabs-content="'+$(this).attr('id')+'"]').find('.tabs-panel.is-active').attr('id');
    alert(tabId);
}); 
Run Code Online (Sandbox Code Playgroud)