Так что я подумал, что следующий код будет действительно простым, но стал большой головной болью.Это должен быть цикл, который изменит непрозрачность объекта и объекта так, чтобы он исчезал.
function doSomething()
{
var i = 10;
for(i = 10; i >=0; i = i - 1)
{
setTimeout("setOpacity('t1',"+ i +")", 100*i);
WRITE 1
}
}
function setOpacity(elem, hmm)
{
WRITE 2
document.getElementById(elem).style.opacity = (10 - hmm)/10;
document.getElementById(elem).style.filter = 'alpha(opacity=' + (10 - hmm)*10 + ')';
}
Так что проблема в том, что цикл for ведет обратный отсчет от 10 до 0, и это было подтвержденооператор print находится в WRITE 1. Однако в методе setOpacity полученные числа начинаются с 0 и считаются до 10, и это было подтверждено оператором print в WRITE 2.
Я хотел бы знать, почему этопроисходит и как я могу это исправить.Я считаю, что это как-то связано с вызовом setTimeout, выполняющим вызов метода после окончания цикла, но если это так, то почему значения передаются в приращение setOpacity?
Любая помощь очень ценится.