gpt4 book ai didi

javascript - 为什么添加参数后功能会停止

转载 作者:行者123 更新时间:2023-12-02 14:55:30 27 4
gpt4 key购买 nike

我有一个代码,我试图使用函数中的参数来执行,即 -

function startFadeEffect(elem){ };

我已使 elem 等于全局范围内的变量 b,其中 b 是图像数组。含义-

var elem = b[imgNumb];

imgNumb 是一个全局变量“0”,在函数内部定义为

imgNumb = imgNumb + count;

现在,我当前的代码“没有”参数工作完美 -

function startFadeEffect(){
var opacSetting = noOpac / 10;
b[imgNumb].style.opacity = opacSetting;
b[imgNumb].style.display = "block";
noOpac++;
if(noOpac < 0){
opacSetting = 0;
}
if(opacSetting == 1){
clearTimeout(timer);
b[imgNumb].style.opacity = 1;
noOpac = 0;
return false;
}
var timer = setTimeout(startFadeEffect, 75);
}

但是,当我使用这样的参数时,它对我不起作用:(

function startFadeEffect(elem){
var opacSetting = noOpac / 10;
elem.style.opacity = opacSetting;
elem.style.display = "block";
noOpac++;
if(noOpac < 0){
opacSetting = 0;
}
if(opacSetting == 1){
clearTimeout(timer);
elem.style.opacity = 1;
noOpac = 0;
return false;
}
var timer = setTimeout(startFadeEffect(elem), 75);
}

请注意,我已经在文件的全局范围内定义了 elem 变量。另外,我只是在寻找 JS 解决方案,没有像 JQuery 这样的库!谢谢

最佳答案

这部分不正确:

setTimeout(startFadeEffect(elem), 75);

应该是:

setTimeout(function () {
startFadeEffect(elem);
}, 75);
<小时/>

setTimeout 需要一个函数作为它的第一个参数。 startFadeEffect(elem) 立即执行(并且不返回函数)。因此,startFadeEffect 会递归地调用自身,直到 opacSetting == 1 中断递归。

关于javascript - 为什么添加参数后功能会停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35848476/

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