gpt4 book ai didi

javascript - 为什么不能在自引用函数调用中将参数传递给 setTimeout?

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:38 24 4
gpt4 key购买 nike

我认为有更好的方法可以做到这一点,也许有人可以指出我的错误。我通过向上和向下计数来脉冲 box-shadow blur css 属性,一旦函数启动就调用它自己。

出于某种原因,我无法将参数传递给第一次传递的 setTimeout 调用。

关于如何更清晰地编写此代码的任何想法?它可以工作,但如果将它概括为其他 css 属性的动画效果会更好。

var pulseBoxShadowBlurCounter = 0;
var pulseBoxShadowBlurDirection;

$(document).ready(function() { // dom binds

pulseBoxShadowBlur($('#getData-btn'),14,'#fff',100); // start the process

});

function pulseBoxShadowBlur(pulseElement,max,color,delayTime){
var cssInput = '0px 0px '+pulseBoxShadowBlurCounter+'px '+color;
$(pulseElement).css('box-shadow', cssInput);

if(pulseBoxShadowBlurCounter == max){
pulseBoxShadowBlurDirection = 1; // backwards
}

if(pulseBoxShadowBlurCounter == -5){ // negative num for pause at 0 time
pulseBoxShadowBlurDirection = 0; // forward
}

if(pulseBoxShadowBlurDirection == 0){
pulseBoxShadowBlurCounter++;
}else{
pulseBoxShadowBlurCounter--;
}

setTimeout( "pulseBoxShadowBlur($('#getData-btn'),14,'#fff',100);",delayTime ); // loop
}

最佳答案

您可以:

setTimeout(function() { pulseBoxShadowBlur(element, max, color, delayTime); }, delayTime);

一般来说,将一些 JavaScript 代码的字符串版本作为 setTimeout()setInterval() 的第一个参数传递是一个坏主意。而是传递一个函数。

关于javascript - 为什么不能在自引用函数调用中将参数传递给 setTimeout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15605745/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com