无特殊原因,课程已添加两次

时间:2018-05-20 16:45:06

标签: jquery

我试图用jQuery创建一个轮播,它与活动,非活动和非特定类一起使用。只需输入" active"即可激活列表的第一个元素。类。我执行此代码转到下一个项目,该项目应删除" active"从当前项目开始,将其添加到下一个,添加"非活动"类到当前所以它有时间进行转换,然后删除"不活动" class,以便下次执行时,它可以使用" inactive"选择器中的类,在.5秒后不选择两个对象。

然而,在0.5秒之后,不仅"无效"课程被删除,但是一个"活跃的"班级突然冒出来了。世界上我做错了什么?!

HTML

<div class="banner">
  <a class="back" onclick="bannerBack()"><i class="fa fa-angle-left"></i></a>
  <a class="next" onclick="bannerNext()"><i class="fa fa-angle-right"></i></a>
  <div class="item-container">
    <div class="featured-item active">...</div>
    <div class="featured-item">...</div>
  </div>
</div>

jQuery功能

var ready = true;
function bannerNext() {
   if (ready) {
      ready = false;
      $(".featured-item.active").addClass("inactive");
      $(".featured-item.inactive").removeClass("active");
      if ($(".featured-item.inactive").is(".featured-item:last-child")) $(".featured-item").first().addClass("active");
      else $(".featured-item.inactive").next().addClass("active");
      setTimeout(function(){
        $(".featured-item.inactive").removeClass("inactive");
        ready = true;
      }, 500);
   }
}

编辑:缩短HTML代码,因为内部的内容在代码中没有任何功能。

1 个答案:

答案 0 :(得分:0)

解决。我在代码旁边运行了一个倒数计时器,它可以每秒激活第一个元素,这要归功于提供可能的解决方案。