2017-03-06 59 views
0

我在项目中使用Zurb基金会为网站v6。我有一个带有标签的页面,我可以动态地创建标签和标签内容。Zurb基金会网站v6标签不起作用

<div class="row woocommerce-tabs"> 
    <div class="large-12 columns"> 
     <ul class="tabs" data-tabs id="product-description-tabs"> 
      <?php foreach ($tabs as $key => $tab) : ?> 
       <li class="tabs-title"> 
        <a href="#tab-<?php echo esc_attr($key); ?>"><?php echo apply_filters('woocommerce_product_' . $key . '_tab_title', esc_html($tab['title']), $key); ?></a> 
       </li> 
      <?php endforeach; ?> 
     </ul> 
     <div class="tabs-content" data-tabs-content="product-description-tabs"> 
      <?php foreach ($tabs as $key => $tab) : ?> 
       <div class="tabs-panel" id="tab-<?php echo esc_attr($key); ?>"> 
        <?php call_user_func($tab['callback'], $key, $tab); ?> 
       </div> 
      <?php endforeach; ?> 
     </div> 
    </div> 
</div> 

我发起的基础,像这样:

<script> 
    $(document).foundation(); 
</script> 

但问题是,在创建时的标签,我想开一些选项卡,当我有例如两个标签,它只是增加了内容从新打开的第二个标签页到第一个标签页的内容。控制台中没有错误,我不确定它为什么会这样做? 我在同一页面上也使用了基础画布,并且工作完全正常,但这只是不按预期工作的选项卡。

+0

你能提供网站链接吗? –

+0

我有本地设置 – Leff

+0

提供更多信息,然后学习如何提出问题http://stackoverflow.com/help/how-to-ask –

回答

0

我猜想(我对PHP并不那么热心),当标签内容被动态添加时,$(document).foundation();在标签本身被创建之前运行(因为它将在页面第一次加载时运行) 。如果我的假设是正确的,那么您可以:

重新初始化(如果要更新现有的一套新的内容标签):

Foundation.reInit('tabs'); // generally for all .tabs 

OR

Foundation.reInit($('#product-description-tabs')); // for that one id 

初始化后创建(如果这是一组新标签)

$('[data-tabs]').foundation(); // Initialise all tabs 

OR

$('#product-description-tabs').foundation(); // Initialise this set of tabs 

但是,一旦你已经加载的HTML标签到DOM,或者它实际上不会做任何事情这必须执行。