Javascript 使用params重复调用jquery函数会导致超出最大调用堆栈

Javascript 使用params重复调用jquery函数会导致超出最大调用堆栈,javascript,jquery,Javascript,Jquery,我试图使图标闪烁,我得到以下html: <button type="button" id="user-card-icon-headphones" class="user-card__button" disabled="" > <i class="fa fa-headphones"></i> </button> <button type="button" id="user-card-icon-phone" class="user-card

我试图使图标闪烁,我得到以下html:

<button type="button" id="user-card-icon-headphones" class="user-card__button" disabled="" >
   <i class="fa fa-headphones"></i>
</button>
<button type="button" id="user-card-icon-phone" class="user-card__button" disabled="">
   <i class="fa fa-phone"></i>
</button>

但我只得到了一次图标blick,并且在显示“超过最大调用堆栈”的错误之后。任何关于如何修复它的想法都是受欢迎的。谢谢。

如果您立即调用
闪烁图标,您需要将其作为函数传递给动画

功能闪烁图标(iconId){
$(“#”+iconId.find('i'))
.延迟(100).衰减(100,0.5)
.delay(100).fadeTo(100,1,function(){blinkIcon(iconId);});
}
blinkIcon(“用户卡-图标-耳机”)

xxx
yyy

这是因为您正在函数内部调用函数<代码>.fadeTo(100,1,闪烁图标(iconId))为那个计数器添加一个停止条件。我能在一个带参数的函数中调用一个函数吗?我不知道这是什么意思。您已经在函数中调用函数并向其传递参数:
blinkIcon(iconId)
function blinkIcon(iconId){
   $('#' + iconId).find('i').delay(100).fadeTo(100,0.5).delay(100).fadeTo(100,1, blinkIcon(iconId));
}

blinkIcon('user-card-icon-headphones');