为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Helenr 2022-01-07 21:16:24
我试图让图标闪烁,我得到了以下 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>我正在这样做:function blinkIcon(iconId){   $('#' + iconId).find('i').delay(100).fadeTo(100,0.5).delay(100).fadeTo(100,1, blinkIcon(iconId));}blinkIcon('user-card-icon-headphones');但我只得到一次图标闪烁,并且在显示超出最大调用堆栈的错误之后。欢迎任何如何解决它的想法。谢谢你。
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您正在blinkIcon立即调用,您需要将其作为函数传递给动画。


function blinkIcon(iconId){

   $('#' + iconId).find('i')

   .delay(100).fadeTo(100,0.5)

   .delay(100).fadeTo(100,1, function() { blinkIcon(iconId); });

}


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

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button type="button" id="user-card-icon-headphones" class="user-card__button" disabled="" >

   <i class="fa fa-headphones">xxx</i>

</button>

<button type="button" id="user-card-icon-phone" class="user-card__button" disabled="">

   <i class="fa fa-phone">yyy</i>

</button>


请注意,没有办法停止闪烁,您最好使用setInterval.


查看完整回答
反对 回复 2022-01-07
  • 1 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号