我知道這已被問了好幾次,但我只是不明白。 因此,這裏的情況:簡單循環JQuery
$ = jQuery;
var loop = function() {
$('#content').delay(800).css('background-color', "#B24296");
$('#content').delay(1600).css('background-color', "#AEB404");
$('#content').delay(2400).css('background-color', "#04B404");
loop();
}
$(document).ready(function() {
loop();
這個設置給了我一個「未捕獲的RangeError:最大調用堆棧大小超出」 我也試過這樣:
var loop = function() {
$('#content').delay(800).css('background-color', "#B24296", function() {
$('#content').delay(1600).css('background-color', "#AEB404", function() {
$('#content').delay(2400).css('background-color', "#04B404");
});
});
}
$(document).ready(function() {
setInterval(loop,3200);
有了這個代碼,只有第一個顏色變化發生但其餘的不會。 所以,不幸的是,這些都不能簡單地改變背景顏色的工作......有誰知道一個解決方案,或可以解釋爲什麼非工程?
編輯: 設法得到它像這樣工作:
function color(t) {
$("div").delay(t*1).queue(function(n) {
$('#green').css('background-color', "#B24296");
n();
});
$("div").delay(t*2).queue(function(n) {
$('#green').css('background-color', "#AEB404"); n();
});
$("div").delay(t*3).queue(function(n) {
$('#green').css('background-color', "#04B404");
n();
});
setTimeout(function() {
color(500);
}, 500);
}
color(500);
第一個是一個無限循環。 – epascarello
尾遞歸:http://en.wikipedia.org/wiki/Tail_recursion – melancia
你也不能在'.css()'上執行'.delay()'...它只是跳轉到最後 – PlantTheIdea