Javascript/JQuery通过数组值循环
我试图在我的网站上显示/隐藏赞助商的徽标,一个接一个地显示/隐藏。我想我有点接近了,但在撞了我的头之后,我决定是时候寻求帮助了。这是我的密码:Javascript/JQuery通过数组值循环,javascript,jquery,loops,delay,slidetoggle,Javascript,Jquery,Loops,Delay,Slidetoggle,我试图在我的网站上显示/隐藏赞助商的徽标,一个接一个地显示/隐藏。我想我有点接近了,但在撞了我的头之后,我决定是时候寻求帮助了。这是我的密码: var sponsors = ["prointec","pequigraf"]; for (var i = 0; i < sponsors.length; i++){ setTimeout($(document.getElementById(sponsors[i])).slideToggle("slow", "swing"), 1000);
var sponsors = ["prointec","pequigraf"];
for (var i = 0; i < sponsors.length; i++){
setTimeout($(document.getElementById(sponsors[i])).slideToggle("slow", "swing"), 1000);
setTimeout($(document.getElementById(sponsors[i])).slideToggle("slow", "swing"), 10000 * (i + 1));
}
var赞助商=[“prointec”,“pequigraf”];
对于(变量i=0;i<0.length;i++){
setTimeout($(document.getElementById(发起人[i])).slideToggle(“slow”,“swing”),1000);
setTimeout($(document.getElementById(发起人[i])).slideToggle(“慢”、“摆动”),10000*(i+1));
}
基本上,它应该一个接一个地显示(10秒后),但相反,它会同时运行。有什么提示吗?提前谢谢 您需要给超时一个函数引用。同时,你也应该设定你的超时时间。在编写JavaScript时尝试异步思考 我还没有测试过这个,但这是我想到的。还要注意,10秒是10000毫秒,而不是1000毫秒
var sponsors = ["prointec","pequigraf"];
var i = 0;
$(document.getElementById(sponsors[0])).show();
$(document.getElementById(sponsors[1])).hide();
var toggleSponsor = function() {
$(document.getElementById(sponsors[i])).hide();
i = (i + 1) % sponsors.length;
$(document.getElementById(sponsors[i])).show();
setTimeout(toggleSponsor, 10000);
};
setTimeout(toggleSponsor, 10000);
我把它作为一个答案而不是一个评论来发布,只是为了确保我能做一些正确的代码格式化 rpamely的代码看起来正是您所需要的,但是您可以将其简化很多。只需在两个赞助商ID前面加上“#”,就可以删除所有
文档。getElementById()
调用:
var sponsors = [ "#prointec","#pequigraf" ];
var i = 0;
$(sponsors[0]).show();
$(sponsors[1]).hide();
var toggleSponsor = function() {
$(sponsors[i]).hide();
i = (i + 1) % sponsors.length;
$(sponsors[i]).show();
setTimeout(toggleSponsor, 10000);
};
setTimeout(toggleSponsor, 10000);
太好了!工作很有魅力!万分感谢!不客气。如果你想让我解释代码的任何部分,请提问。为什么人们对这个问题投反对票???如果你对阅读/回答初学者的东西感到不舒服,就忽略它。似乎有些人在SO将新手问题视为专门用来抨击的游戏。为了防止有人想检查它的外观(或者如果有人想使用这个简单但有效的代码),下面是它的实现(英雄形象下面有一个黑条):