2016-09-15 92 views
-2

有人可以告诉为什么这是行不通的吗?它适用于alert(),但不是当我尝试使用.css时。我绝对需要使用JavaScript循环。简单的JavaScript循环+ jQuery

$(".select-buttons a").on("click", function() { 
 
    var counter = 0; 
 
    var i = setInterval(function() { 
 
     $(".name").css("background", "red"); 
 
     counter++; 
 
     if (counter === 3) { 
 
      clearInterval(i); 
 
     } 
 
    }, 1000); 
 
});

+2

请包括一个[mcve],否则这个问题是[off-topic(#1)](/ help/on-topic)。 – zzzzBov

+6

你究竟想要做什么?如果您将背景更改为红色,第二次会发生什么情况?背景已经是红色。 – Santi

+1

哪部分不起作用? setInterval的?设置背景,点击点击?也显示一些html。 clearInterval不会重置背景。 –

回答

0

所以这段代码运行正常。每隔1秒(1000毫秒),背景颜色将被设置为红色。问题在于没有代码将其设置为另一种颜色!这意味着元素将以之前设置的任何背景颜色开始,一旦单击该按钮,它将等待一秒钟,变为红色,等待一秒钟,变为红色,等待一秒钟,变为红色,然后停止(整个过程一直保持红色)。

它看起来像你期待clearInterval()调用重置背景颜色,但它实际上是做的是停止从一次又一次将颜色设置为红色的时间间隔。

假设您试图让元素闪烁红色,您需要将某些颜色设置为初始颜色。你可以尝试做一些像this或想出更好的解决方案!