2016-09-15 63 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或想出更好的解決方案!