我有一些RGB顏色的像這樣的列表:如何在jQuery中每X秒更改一次div背景顏色而無效?
var ls = ['rgb(255,0,0)','rgb(0,255,0)', 'rgb(0,0,255)'];
而且我想更新一個div背景顏色使用的顏色從列表中每2秒。爲了實現這一目標,我寫了下面的代碼:
(function($){
var $box = $('#box');
var temp;
var ls = ['rgb(255,0,0)','rgb(0,255,0)', 'rgb(0,0,255)'];
$.each(ls, function(i, x){
temp = setInterval(change(x), 2000);
});
function change(color) {
$box.css('background-color', color);
}
})(jQuery);
我的目標是在移動到下一種顏色之前顯示在列表中2秒每一種顏色,但是這個代碼等待2秒鐘,然後執行循環,所以我只能看到最後一種顏色是藍色(rgb(0,0,255))。
我的HTML看起來像這樣:
<html>
<head>
<title>bin</title>
<style>
#box{
width: 200px;
height: 200px;
background-color: rgb(0,0,0);
}
</style>
</head>
<body>
<div id="box"></div>
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script src="main.js"></script>
</body>
</html>
謝謝大家。
你可以用'setInterval' – Rajesh
參見本:http://jsfiddle.net/7h7dv25j/1/ – Rayon
感謝@Rayon Dabre,我很喜歡你的解決方案,謝謝。 –