标签页不能在同一页面上使用多个

时间:2019-08-26 12:03:51

标签: javascript php jquery html

我正在使用PHP。我正在从数据库中获取产品数据,并以标签方式显示。

现在,我有一个无法与多个标签一起使用的脚本部分。它仅适用于第一个标签部分,并且我有6个以上的标签部分。我在$('.tab-content').removeClass('current');上遇到了问题,因为它正在从各处删除当前的类。

如果我单击第一个选项卡部分的第一个选项卡,则它将从2-6个选项卡部分中删除当前课程。

我尝试了

$('.products-category-list').closest('.tab-content').removeClass('current');

您能帮我解决这个问题吗?

<?php while ($stmt->fetch()) { ?>
<section class="">
  <div class="container">
    <div class="products-category-list">
      <div class="a-tab">
        <ul class="tab_click">
          <li class="tab-link current" data-tab="tab-<?php echo $product_slug ?>1">Product1 Details</li>
          <li class="tab-link" data-tab="tab-<?php echo $product_slug ?>2">Product2 Details</li>
          <li class="tab-link" data-tab="tab-<?php echo $product_slug ?>3">Product3 Details</li>
          <li class="tab-link" data-tab="tab-<?php echo $product_slug ?>4">Product4 Details</li>
        </ul>
      </div>

      <div id="tab-<?php echo $product_slug ?>1" class="tab-content current">
        <div class="display_table">
          <p>
            <?php echo $productdetails1 ?>
          </p>
        </div>
      </div>
      <div id="tab-<?php echo $product_slug ?>2" class="tab-content">
        <div class="display_table">
          <p>
            <?php echo $productdetails2 ?>
          </p>
        </div>
      </div>
      <div id="tab-<?php echo $product_slug ?>3" class="tab-content">
        <div class="display_table">
          <p>
            <?php echo $productdetails3 ?>
          </p>
        </div>
      </div>
      <div id="tab-<?php echo $product_slug ?>4" class="tab-content">
        <div class="display_table">
          <p>
            <?php echo $productdetails4 ?>
          </p>
        </div>
      </div>
    </div>
  </div>
</section>

<?php }$stmt->close();?>

脚本

$(document).ready(function(){
  $('ul.tab_click li').click(function(){
    var tab_id = $(this).attr('data-tab');
     $(this).closest('ul.tab_click').find('li').removeClass('current');
   $('.tab-content').removeClass('current');
    $(this).addClass('current');
    $("#"+tab_id).addClass('current');
  })

});

2 个答案:

答案 0 :(得分:0)

$(this).closest('ul.tab_click').find('li').removeClass('current');

将上面的代码替换为:

$('ul.tab_click li').removeClass('current');

答案 1 :(得分:0)

根据您的jsfiddle,我将您的javascript代码替换为:

$(document).ready(function(){
    $('ul.tabs li').click(function(){
        var tab_id = $(this).attr('data-tab');
        $(this).closest('ul.tabs').find('li').removeClass('current');
        $(this).closest('.container').find('.tab-content').removeClass('current');
        $(this).addClass('current');
        $("#"+tab_id).addClass('current');
    })
})

所以我替换了行

$('ul.tabs li').removeClass('current');

使用

$(this).closest('ul.tabs').find('li').removeClass('current');

仅选择当前选项卡的li,与该行相同

$('.tab-content').removeClass('current');