分别调用两个javascript函数
我有两个函数,例如runslider()和runslider1()。 runslider()在加载文档后运行,我需要在完成runslider()后调用runslider1()。然后在runslider1()之后再次执行runslider()。这个过程应该像无限循环一样发生。谁能帮帮我吗。 我试着让他们像回电话一样。但那没用分别调用两个javascript函数,javascript,jquery,Javascript,Jquery,我有两个函数,例如runslider()和runslider1()。 runslider()在加载文档后运行,我需要在完成runslider()后调用runslider1()。然后在runslider1()之后再次执行runslider()。这个过程应该像无限循环一样发生。谁能帮帮我吗。 我试着让他们像回电话一样。但那没用 function runSlider(runslider1){ alert("run") runSlider1(runSlider()
function runSlider(runslider1){
alert("run")
runSlider1(runSlider());
}
function runSlider1(runslider){
alert("run1");
runSlider(runSlider1());
}
如果希望反复调用函数,请尝试使用
setInterval
函数runSlider(){
警报(“运行”);
runSlider1();
}
函数runSlider1(){
警报(“运行1”);
}
设置间隔(运行滑块,100)代码>以上注释正确-将导致堆栈溢出
我不知道你为什么需要这个,但我为你清理了你的代码:
function runSlider() {
alert('run');
runSlider1();
}
function runSlider1() {
alert('run1');
runSlider();
}
您可以创建这样的无限循环,只需调用一个函数
var runSlider=function(){
console.log(“运行”)
runSlider1()
}
var runSlider1=函数(){
console.log(“run1”);
setTimeout(函数(){
runSlider()
}, 1000)
}
runSlider()
另一种解决方案是:
function runSlider() {
console.log("run");
runSlider1();
setTimeout(runSlider1(), 1000) // Calls runSlider1() after 1 second(1000 millisecond). You can change it.
}
function runSlider1() {
console.log("run1");
setTimeout(runSlider(), 1000) // Calls runSlider1() after 1 second(1000 millisecond).
}
runSlider(); // Starts the cycle
如果这样做,将导致堆栈溢出,只需创建一个调用这两个函数的无限循环即可。所以这会挂起浏览器。然而,正如前面所说,setInterval
会起作用。代码是错误的,我们可以修复它,但是为什么您要首先中断浏览器?您只需要一个函数就可以使其循环,下面是发生的情况:这会产生一个错误“runSlider1”在定义之前就被使用了。
var maxCalls = 0;
function run1(cb) {
alert('run1');
if (maxCalls++ < 5) { //Added this to avoid an infinite loop
cb(run1); //We want the function run after cb to be this one
}
}
function run2(cb) {
alert('run2');
if (maxCalls++ < 5) {
cb(run2);
}
}
var runFunc = 0;
var run1 = function() {
alert('run1');
};
var run2 = function() {
alert('run2');
};
var run = function() {
!(++runFunc) ? run2 : run1; //Alternate between calling each function
}
var stopRunning = function() { //Call this to stop the functions running
clearInterval(runInterval);
};
var runInterval = setInterval(run, 1000); //Calls the function every second