<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <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); } } //--> </SCRIPT> </HEAD> <BODY> </BODY> </HTML>
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?