所以我有两个元素first
和second
;我试图让他们轮流出现;我有以下代码;
setTimeout(setInterval(function(){
$(".first").hide();
$(".second").show();
},20000),10000)
setTimeout(setInterval(function(){
$(".first").show();
$(".second").hide();
},20000),0)
似乎这些代码不起作用,有人可以告诉我什么是错的吗?
答案 0 :(得分:0)
您的setTimeout()
回调需要是function() {setInterval(...)}
等实际功能参考。你拥有它的方式,你立即执行setInterval()
,然后将结果传递给setTimeout()
,这是无效的:
setTimeout(function() {
setInterval(function(){
$(".first").hide();
$(".second").show();
},20000),10000);
但是,有一个更好的方法来实现这个只有一个计时器:
(function() {
var flag = true;
setInterval(function() {
flag = !flag;
$(".first")[flag ? "hide" : "show"]();
$(".second")[flag ? "show" : "hide"]();
}, 10000);
})();
或者,如果您最初设置隐藏/显示状态,那么您可以使用jQuery的.toggle()
来反转可见性:
$(".first").show();
$(".second").hide();
setInterval(function() {
$(".first").toggle();
$(".second").toggle();
}, 10000);
答案 1 :(得分:0)
我找到了另一种选择:
var d=0;
setInterval(function(){
if(d==0){
d=1
$(".first").hide();
$(".second").show();
}else if(d==1){
d=0
$(".first").show();
$(".second").hide();
}
},10000)