我不确定这个Javascript问题是否曾经被问过 - 我找不到它,但是如果我错过了它,我的道歉。在setInterval中给一个匿名函数提供多个参数
我正在尝试创建一个带有淡入/淡出相应图像的复选框的页面。衰落需要1秒,每100ms,图像的不透明度增加或减少0.1;当不透明度达到0或1时,setInterval调用停止。但是,我不确定如何将参数传递给匿名函数调用。我试图传递两个变量 - 第一个是从复选框值获得的图像的ID,另一个是是否检查复选框,以便函数知道是淡入还是淡出。不过,我已经遇到了代码的问题(见下文),我认为它是由于setInterval函数调用内的变量的范围 - 这就是为什么我要求将多个参数传递给呼叫。
例如:
<form action="">
<input type="checkbox" onclick='handleClick(this);' name="skymap" value="aurora">Aurora
<input type="checkbox" onclick='handleClick(this);' name="skymap" value="mainindex">Main Index
</form>
,功能如下(迄今为止)
function handleClick(cb)
{
var myInterval = setInterval(function()
{
if (cb.checked) // tick box checked - fade in.
{
document.getElementById(cb.value).style.opacity+=0.1; // I'll refactor all these style.opacity calls later on :)
if(document.getElementById(cb.value).style.opacity>1) // full opacity - stop the timer
{
document.getElementById(cb.value).style.opacity = 1;
clearInterval(myInterval);
}
}
else // fade out
{
document.getElementById(cb.val).style.opacity-=0.1;
if(document.getElementById(cb.val).style.opacity<0)
{
document.getElementById(cb.val).style.opacity = 0;
clearInterval(myInterval);
}
}
}, 100);
}
的图像被称为喜欢的东西:
<img id="aurora" src="aurora.png" />
我现在没有看到任何参数正在通过? – colecmc
这就是问题 - 我不知道该怎么做... – EventHorizon