<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<script LANGUAGE="JavaScript"> <!--
//Przechowuje liczbę obiektów którym zostały nadane nazwy
numerId=0;
//Tablica ze stanami obiektów
nr = new Array;
//Identyfikatory cyklicznie wywoływanych czynności
timerIdU = new Array;
timerIdD = new Array;
//Zwraca id obiektu. Jeśli obiekt nie ma id nadaje mu go.
function nadajId(whoa)
{
if(whoa.id=='')
{
whoa.id = "divnr"+numerId;
numerId++;
return whoa.id;
}
else
return whoa.id;
}
function wielkrotnik(akcja)
{
document.getElementById(ident).childNodes[0].data = nr[ident];
if(akcja=='zwieksz')
{
//Jeśli wartość dojdzie do 30 przestaje zwiększać
if(nr[ident]==30)
clearInterval(timerIdU[ident]);
else
nr[ident]++;
}
else
{
//Jeśli wartość dojdzie do 1 przestaje zmniejszać
if(nr[ident]==1)
clearInterval(timerIdD[ident]);
else
nr[ident]--;
}
}
//Zmienia wartość podanego obiektu zależnie od akcji
function zmienWartosc(obiekt, akcja)
{
//Pobiera id obiektu
ident = nadajId(obiekt);
//Jeśli obiekt nie ma jeszcze wartości nadaje mu ja
if(nr[ident]==undefined)
nr[ident] = 1;
//Rozpoczyna zwiększać wartość obiektu
if(akcja=='wgore')
{
//Przestaje zmniejszać wartość obiektu (jeśli zmniejszała się
) clearInterval(timerIdD[ident]);
timerIdU[ident] = setInterval("wielkrotnik('zwieksz')", 10);
}
//Rozpoczyna zmniejszać wartość obiektu
else
{
//Przestaje zmniejszać wartość obiektu (jeśli zwiększała się
) clearInterval(timerIdU[ident]);
timerIdD[ident] = setInterval("wielkrotnik('zmniejsz')", 10);
}
}
//-->
<DIV style="background-color:#00FFFF; width:100px; height:100px;" onMouseOver="zmienWartosc(this, 'wgore')" onMouseOut="zmienWartosc(this, 'wdol')"> </DIV> <DIV style="background-color:#00FFFF; width:100px; height:100px;" onMouseOver="zmienWartosc(this, 'wgore')" onMouseOut="zmienWartosc(this, 'wdol')"> </DIV>
Po najechaniu na dany obiekt (DIV) jego wartość ma się zwiększyć do 30 a po opuszczeniu obiektu ma się zmniejszyć do 1. Wszystko działa dobrze do momentu przejechani z jednego obiektu na drugi zanim zakończy się zmniejszanie wartości tego pierwszego. Wtedy dochodzi do zawiechy. Co morze być tego powodem?