Jquery 循环函数
我想制作一个java脚本,每5秒自动循环一次我的函数。这是我的代码Jquery 循环函数,jquery,function,loops,Jquery,Function,Loops,我想制作一个java脚本,每5秒自动循环一次我的函数。这是我的代码 function showlisten() { document.getElementById('listen').style.display = "block"; document.getElementById('review').style.display = "none"; document.getElementById('earn').style.display = "none"; documen
function showlisten() {
document.getElementById('listen').style.display = "block";
document.getElementById('review').style.display = "none";
document.getElementById('earn').style.display = "none";
document.getElementById('listen-text').style.display = "block";
document.getElementById('review-text').style.display = "none";
document.getElementById('earn-text').style.display = "none";
}
function showreview() {
document.getElementById('listen').style.display = "none";
document.getElementById('review').style.display = "block";
document.getElementById('earn').style.display = "none";
document.getElementById('listen-text').style.display = "none";
document.getElementById('review-text').style.display = "block";
document.getElementById('earn-text').style.display = "none";
}
function showearn() {
document.getElementById('listen').style.display = "none";
document.getElementById('review').style.display = "none";
document.getElementById('earn').style.display = "block";
document.getElementById('listen-text').style.display = "none";
document.getElementById('review-text').style.display = "none";
document.getElementById('earn-text').style.display = "block";
}
您正在查找setInterval();) 这个很简单
var clearToken = window.setInterval(function () {
showlisten(); showreview(); showearn();
}, 5000);
感谢QuickSilver博士发现了需求的真正本质。更新如下:
function showlisten(){
document.write("listen<br />");
}
function showreview(){
document.write("review<br />");
}
function showearn(){
document.write("earn<br />");
}
showlisten();
window.setInterval(function () {
showlisten();
}, 15000);
window.setTimeout(function () {
showreview();
window.setInterval(function(){
showreview();
}, 15000);
}, 5000);
window.setTimeout(function () {
showearn();
window.setInterval(function () {
showearn();
}, 15000);
}, 10000);
函数showlisten(){
记录。写下(“倾听
”);
}
函数showreview(){
文件。书写(“审阅
”);
}
函数showeren(){
记录。填写(“赚取
”);
}
showlisten();
window.setInterval(函数(){
showlisten();
}, 15000);
setTimeout(函数(){
showreview();
setInterval(函数(){
showreview();
}, 15000);
}, 5000);
setTimeout(函数(){
showeren();
window.setInterval(函数(){
showeren();
}, 15000);
}, 10000);
我更喜欢QuickSilver的方法,但是复制样式是多余的,所以我用不同的方法给你们两种方法
我为它创建了一个提琴,但该网站现在似乎正在为我播放:希望该链接适合您。我应该缓存DOM元素,如:
function loopFunctions(){
var elemListen = document.getElementById('listen'),
elemReview = document.getElementById('review'),
elemEarn = document.getElementById('earn'),
elemListenText = document.getElementById('listen-text'),
elemReviewText = document.getElementById('review-text'),
elemEarnText = document.getElementById('earn-text'),
functions = [
function(){
elemListen.style.display = "block";
elemReview.style.display = "none";
elemEarn.style.display = "none";
elemListenText.style.display = "block";
elemReviewText.style.display = "none";
elemEarnText.style.display = "none";
},
function(){
elemListen.style.display = "none";
elemReview.style.display = "block";
elemEarn.style.display = "none";
elemListenText.style.display = "none";
elemReviewText.style.display = "block";
elemEarnText.style.display = "none";
},
function(){
elemListen.style.display = "none";
elemReview.style.display = "none";
elemEarn.style.display = "block";
elemListenText.style.display = "none";
elemReviewText.style.display = "none";
elemEarnText.style.display = "block";
}
],
idInterval = setInterval(function(){
for (var i = functions.length; i >= 0; i--) {
functions[i]();
};
}, 5000);
}
您是否希望它处于“侦听”状态5秒钟,然后处于“审阅”状态5秒钟,然后处于“获取”状态5秒钟,然后循环 如果是这样,您需要一个由3个设置超时组成的链:
function dolisten() {
showlisten();
setTimeout(doreview,5000);
}
function doreview() {
showreview();
setTimeout(doearn,5000);
}
function doearn() {
showearn();
setTimeout(dolisten,5000);
}
您也可以在15秒的时钟上设置3个不相关的
设置间隔
,但我不确定它们是否会保持同步,这其实并不简单。您没有使用jQuery。也许你应该,就像你标记的;)$('#listen').hide()
比document.getElementById('listen').style.display=“无”要短得多代码>这并不特别重要getElementById
速度很快。像这样的优化是在浪费你的时间,除非你已经确定它是一个瓶颈。(更复杂的元素选择器,如jQuery或Prototype中经常使用的元素选择器,可能会比较慢,这可能是一个很好的建议——但即使如此,只有当您的页面很大并且选择器被执行了很多次时,才是如此)这是有原因的;一切都是权衡。优点包括它使代码更短,更容易阅读,因为您不必去检查变量是什么。缺点包括,如果你改变它,你必须在多个地方改变它。特别是在jQuery中,经常会看到重复使用$(“#listen”)
样式选择器,我不会急于将它们排除,除非它发生在一个导致确定的性能问题的紧密循环中。我尝试了这个方法,它会转到最后一个函数,并在控制台中查看,您的代码中可能有未处理的异常。您需要发布完整的代码。除非你这么做,否则我真的帮不了你。“你能做一把小提琴吗?”康诺库希恩·穆尔霍尔说得很对,那将进入最后一个州并留在那里。您将看不到showlisten
或showreview
的效果,因为showearn
发生在最后,并撤消它们所做的一切;我想这三个州之间都需要5秒的延迟,见我的答案。谢谢你帮我发现了这个要求,DQS。我使用setInterval作为替代方法,所以现在他有两种方法,尽管我更喜欢你的方法,如果你不是先到的话,我会这样做。更新了上面的内容,并将您的答案也添加到+1中。