2014-12-03 77 views
-1

我developped的实时跟踪网站供我上学,在这里你有两个全屏图,G1和G2。我想在显示G2 2分钟之前显示G1 10分钟。所以我猜我可以如下做到这一点: 作为setTimeout的被立即执行它填补了堆栈(不要把语法考虑)基于时间的事件的JavaScript

hideG1(){ //the same as displayG2 
    G1.hide(); 
    G2.display(); 
    setTimeout(hideG2, 10minutes); 
} 

hideG2(){ //the same as displayG2 
    G2.hide(); 
    G1.display(); 
    setTimeout(hideG1, 2minutes); 
} 

然而,给我一个错误,从而抑制了代码的其余部分被执行。

有没有人有解决方案?

+0

它不完全了解是什么问题。这应该工作。你能添加更多真实的代码吗? – 2014-12-03 17:09:20

+2

2分钟将是'setTimeout(hideG1,2 * 60 * 1000)'。 'setTimeout'的时间以毫秒为单位。 '2分钟'不是有效的时间值或有效的变量名称。 – jfriend00 2014-12-03 17:10:00

+0

是10分钟和2分钟应该是变数?尝试将ms转换为分钟时间范围。 – rfornal 2014-12-03 17:10:06

回答

2

2minutes不是有效的时间值或有效的变量名称,因为JavaScript标识符不能以数字开头,时间必须以毫秒为单位指定。

超时在运行2分钟。将

setTimeout(hideG1, 2 * 60 * 1000); 

setTimeout的时间是在毫秒。


这也不清楚你的意思是.display()。如果你打算与jQuery中的.hide()相反,那么它应该是.show()。因此,假设G1G2是jQuery的对象,那么你可以有这样的:

function hideG1(){ 
    G1.hide(); 
    G2.show(); 
    setTimeout(hideG2, 10 * 60 * 1000); // 10 minutes 
}; 

function hideG2(){ 
    G2.hide(); 
    G1.show(); 
    setTimeout(hideG1, 2 * 60 * 1000); // 2 minutes 
};