View Single Post
Old 14-02-2007, 16:58   #1
dierre
Senior Member
 
L'Avatar di dierre
 
Iscritto dal: Sep 2004
Città: Interamnia Urbs
Messaggi: 2125
[Javascript] bloccare una funzione abbinata ad un evento richiamandola da un'altra.

Sì lo so, non si capisce il titolo. Con l'esempio spero si capisca.
Queste sono le due funzioni:

Codice:
function setOpacity(i) { 

obj = document.getElementById("pro");

obj.style.filter = "alpha(opacity="+i+")"; 
 
obj.style.opacity = i/100;

i = i-1;

if(i>20) setTimeout('setOpacity('+i+')',20);

return false;

} 

function ripOpacity(i) { 

obj = document.getElementById("pro");

obj.style.filter = "alpha(opacity="+i+")";  
 
obj.style.opacity = i/100;

i = i+1;

if(i<100) setTimeout('ripOpacity('+i+')',20);

return false; 
}
Viene richiamata qui:

Codice:
<div onMouseOver="setOpacity(100)" onMouseOut="ripOpacity(20)" id="pro">
ciao ciao<br/>
ciao<br/>
Il problema è che se tolgo il mouse prima che finisce l'effetto della prima funzione, la seconda va a baldracche, quindi a me è venuto in mente solo di usare una specie di mutex. Ci sono soluzioni più carine per bloccare le funzioni?
__________________
Un wormhole (buco di tarlo, in italiano), detto anche Ponte di Einstein-Rosen, è una ipotetica caratteristica topologica dello spaziotempo che è essenzialmente una "scorciatoia" da un punto dell'universo a un altro, che permetterebbe di viaggiare tra di essi più velocemente di quanto impiegherebbe la luce a percorrere la distanza attraverso lo spazio normale.
Go to a Wormhole
dierre è offline   Rispondi citando il messaggio o parte di esso