0

我正在尝试在 shopify 中的产品页面上实现选项卡。我显示了选项卡,单击时选项卡似乎正在更改,但容器未刷新/加载数据

jQuery

<script>
$(document).ready(function() {
  $('ul.tabs').each(function(){
    // activate tabs
    var active, content, links = $(this).find('li');
    active = links.first().addClass('active');
    content = $(active.attr('href'));
    links.not(':first').each(function () {
      $($(this).attr('href')).hide();
    });
    // activate content
    $(this).find('li').click(function(e){
      active.removeClass('active');
      content.hide();
      active = $(this);
      content = $($(this).attr('href'));
      active.addClass('active');
      content.show();
      return false;
    });
  });
});

标签 HTML

<div>
        <ul class="tabs">
          <li class="tab-title active"><a href="#tab-1">Product details</a></li>
          <li class="tab-title"><a href="#tab-2">Delivery options</a></li>
          <li class="tab-title"><a href="#tab-3">Returns</a></li>
        </ul>
        <div id="tab-1" class="tabs-content">
          <div class="content contained active"> 
            <div class="product-description rte" itemprop="description">
              {{ product.description }}
            </div>
          </div>  
        </div>
        <div id="tab-2" class="tabs-content">
          <div class="content contained"> 
            <div>       
                {% include 'shipping' %}   
            </div>
          </div>  
        </div>
        <div id="tab-3" class="content contained">
        {{ pages.returns.content }}
        </div>        
      </div>  
4

1 回答 1

0

content = $(active.attr('href'));content = $($(this).attr('href'));将是空的,因为li没有任何href. 它应该是content = $(active.find('a').attr('href'));并且content = $($(this).find('a').attr('href'));

试试这个

$(document).ready(function() {
  $('ul.tabs').each(function(){
    // activate tabs
    var active, content, links = $(this).find('li');
    active = links.first().addClass('active');
    content = $(active.find('a').attr('href'));
    links.not(':first').each(function () {
      $($(this).find('a').attr('href')).hide();
    });
    // activate content
    $(this).find('li').click(function(e){
      active.removeClass('active');
      content.hide();
      active = $(this);
      content = $($(this).find('a').attr('href'));
      active.addClass('active');
      content.show();
      return false;
    });
  });
});
于 2016-02-26T11:34:31.967 回答