我不確定這個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