javascript - 如何重新启动顺序模式,从单击的元素开始

标签 javascript jquery html

我有 4 个橙色按钮,我正在创建一个调用另一个函数的 setInterval 函数,以使 4 个按钮每三秒改变一次颜色,这个东西运行良好。

现在假设当前的灰色按钮是按钮 1,从逻辑上讲,下一个要更改的按钮是按钮 2,如果我单击按钮 3,我希望按钮 4 而不是按钮 2 发生变化,所以我想更改下一个按钮。

这是我的 jsfiddle example

这是我的代码:

var z = 1;
	function updateColor(btn) {
   		
    	// defilement des boutons de jaune a gris sur desktop
    	$('.all-divs').find('.btn').removeClass('btn-current');
    	z++;
   		$('#btn-'+z).addClass('btn-current').siblings('.btn-current').removeClass('btn-current');
   		if(z == 4){z = 0;}
  }

  $(document).ready(function() {
        setInterval(updateColor, 3000);
    });

    $('.btn').click(function(){
        $('.btn').removeClass("btn-current");
        $(this).addClass("btn-current");
    });
.btn{
  width:50px;
  height:50px;
  margin:10px auto;
  text-align:center;
  background-color:orange;
  border-radius:50px;
}

.btn-current{
  width:50px;
  height:50px;
  margin:10px auto;
  text-align:center;
  background-color:#666;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div class="all-divs">


  <div class="btn" id="btn-1">
    1
  </div>
  <div class="btn" id="btn-2">
    2
  </div>
  <div class="btn" id="btn-3">
    3
  </div>
  <div class="btn" id="btn-4">
    4
  </div>

</div>

谢谢大家

最佳答案

在您的按钮点击事件中,只需进行以下更改:

$('.btn').click(function(){
    $('.btn').removeClass("btn-current");
    $(this).addClass("btn-current");
    z = this.id.split('-')[1];
});

jsFiddle Demo

关于javascript - 如何重新启动顺序模式,从单击的元素开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34577115/

相关文章:

javascript - 纯javascript中的DOM实现?

javascript - JQuery .offset() 没有设置 'top' 值

javascript - 改变 slotMinutes

HTML/CSS : How to stop the cursor after the last letter in this animated text?

php - 在 HTML/PHP 中输​​入 RGB 值的框中显示颜色

javascript - 如何从用冒号分隔的角色字符串中获取数据?

javascript - 自定义属性

javascript - 将多个语义 ui react 下拉键更新为状态

javascript - 如果一个或两个盒子打开/关闭,打开/关闭其余部分(如果所有打开,关闭所有)

html - CSS 移动定义不适用?