jquery - "too much recursion"jquery错误

标签 jquery recursion

尝试创建背景图像幻灯片并收到此错误...这是我尝试实现的代码:

var $j = jQuery.noConflict();
$j( function(){
    var bgArr = [ 'sample1.jpg','sample2.jpg','sample3.jpg' ];
    function backgroundSlide(i) {
             $j("#home_sub_banner").css("background-image", "url("+bgArr[i++]+")");
             if (i == bgArr.length) i = 0;
             var st = setTimeout(arguments.callee(i), 1000);
    }
backgroundSlide(0)

});

最佳答案

当您编写 arguments.callee(i) 时,您正在调用 arguments.callee 并将其结果(如果有)传递给 setTimeout。这会导致无限递归。

您需要传递setTimeout和稍后调用arguments.callee的匿名函数,如下所示:

var me = arguments.callee;
setTimeout(function() { me(i); }, 1000);

关于jquery - "too much recursion"jquery错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2421946/

相关文章:

JavaScript、jQuery : How to re-listen for click events

c - 使用 DFS 递归方法优化 "Number of Islands"程序中此行为的根本原因是什么

for-loop - `for` 在此递归 Clojure 代码中如何工作?

javascript - 递归遍历数组的大O算法

python - 递归:如何避免 Python set changed set 在迭代 RuntimeError 期间

jquery - 尝试使用 jQuery .click 事件更改边框颜色

javascript - 如何在 D3.js 中添加箭头链接?

jquery - 如何附加元素值计数

javascript - 500(内部服务器错误)jQuery ajax ui 自动完成 codeigniter

c++ - C++:递归成员函数模板