Javascript jQuery-未捕获范围错误:超过最大调用堆栈大小

Javascript jQuery-未捕获范围错误:超过最大调用堆栈大小,javascript,jquery,recursion,Javascript,Jquery,Recursion,下面的代码(请参阅)引发问题标题中提到的堆栈溢出。我试图在脉冲效果中,在圆形图像周围显示一个长方体阴影。有人能指出递归吗?我是一个Javascript新手,看不到它。多谢各位 HTML <div id="pulseDiv"> <a href="#" id="advisers-css-image"> <div id="advisersDiv"><img src="http://ubuntuone.com/1djVfYlV

下面的代码(请参阅)引发问题标题中提到的堆栈溢出。我试图在脉冲效果中,在圆形图像周围显示一个长方体阴影。有人能指出递归吗?我是一个Javascript新手,看不到它。多谢各位

HTML

<div id="pulseDiv"> 
      <a href="#" id="advisers-css-image">
           <div id="advisersDiv"><img src="http://ubuntuone.com/1djVfYlV62ORxB8gSSA4R4"></div>
      </a>
</div>
Javascript

function fadeIn() {
   $('#pulseDiv').find('div.advisersDiv').delay(400).addClass("pulse");
   fadeOut();
};

function fadeOut() {
   $('#pulseDiv').find('div.advisersDiv').delay(400).removeClass("pulse");
   fadeIn();
};

您的调用是递归进行的,这会将函数无限地推送到堆栈上,从而导致由于递归行为而导致超出最大调用堆栈的错误。相反,请尝试使用setTimeout,这是一个回调

此外,根据您的标记,您的选择器是错误的。它应该是
#advisorsdiv

函数fadeIn(){
$('pulseDiv').find('div#advisorsdiv').delay(400).addClass(“pulse”);

setTimeout(fadeOut,1);//您的
fadeIn()
函数调用
fadeOut()
函数,该函数调用
fadeIn()
再次调用函数。递归在JS中。

您有两个函数可以无延迟地递归调用对方。明白了,谢谢Kevin B-另请参阅PSL的答案,该答案迎合了延迟。非常感谢PSL给出了正确的答案,也指出了我在选择器标识符方面的错误。
function fadeIn() {
   $('#pulseDiv').find('div.advisersDiv').delay(400).addClass("pulse");
   fadeOut();
};

function fadeOut() {
   $('#pulseDiv').find('div.advisersDiv').delay(400).removeClass("pulse");
   fadeIn();
};
function fadeIn() {
    $('#pulseDiv').find('div#advisersDiv').delay(400).addClass("pulse");
    setTimeout(fadeOut,1); //<-- Provide any delay here
};

function fadeOut() {
    $('#pulseDiv').find('div#advisersDiv').delay(400).removeClass("pulse");
    setTimeout(fadeIn,1);//<-- Provide any delay here
};
fadeIn();