function ShowColoursScreen() {
setSquaresList()
$("#ModeOne").hide();
$("#ModeTwo").show();
setTimeout(function () {
$("#ModeOne").show();
$("#ModeTwo").hide();
setTimeout(function () {
ShowColoursScreen();
}, 1500);
}, 15000);
}
这非常奇怪,我想每15秒在两个div之间旋转(我不想使用js间隔)。但是在前十五秒后ShowColoursScreen();在没有等待第二个15秒的情况下运行(如果这是有道理的)。就像超时被忽略了,有什么想法吗?
答案 0 :(得分:2)
您的代码是正确的。但是,当您忘记零时,内部超时仅等待1.5秒。只需用15000替换1500。
您也可以稍微简化一下调用 - 因为您没有任何参数,所以不需要匿名函数:setTimeout(ShowColoursScreen, 15000);
答案 1 :(得分:0)
function ShowColoursScreen($elements) {
if(!$elements instanceof jQuery) {
$elements = $($elements);
}
var current = 0;
// What does this function do?
setSquaresList();
function showCurrent () {
var $currentElement = $($elements[current]);
$elements.not($currentElement).hide();
$currentElement.show();
(current++) % $elements.length;
setTimeout(showCurrent, 15000);
}
showCurrent();
return $elements;
}
ShowColoursScreen('#ModeOne, #ModeTwo')