Ver Mensaje Individual
  #4 (permalink)  
Antiguo 04/06/2005, 12:07
kepawe
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 20 años, 4 meses
Puntos: 5
Hola tunait y caricatos.

Otra opción podría ser utilizar la propiedad prototype de Function.
Para que te hagas una idea te envío un ejemplo.
Código:
<html>
<head>
<title></title>
<script language="JavaScript" type="text/javascript">
<!--


function count_down(){
// Evitamos que el usuario acelere la cuenta atrás
this.onclick = "new Function(return false)";
this.n--;
this.innerHTML = this.n;
// Si a terminado la cuenta atrás volvemos a permitir la cuenta atrás
if(this.n == 0){ 
	this.innerHTML = this.n + " Haz click para iniciar la cuenta atrás otra vez.";
	this.onclick = function(){
            this.n = this.const_n + 1;
            this.count_down();
		
	}
}
if(this.n > 0) this.ctrl = window.setTimeout(""+this.id+".count_down()",2000);


}
// Enviamos el objeto y las variables 
Function.prototype.args = function(obj,n){
// añadimos propiedades al objeto para almacenar las variables
obj.const_n = n;
obj.n = n + 1;
obj.ctrl;
// Asignamos la función al objeto
obj.count_down = this;
// Almacenamos el objeto en una variable, es necesario para el método setTimeout
eval("window."+obj.id+" = obj");
// Llamamos a la función
obj.count_down();

}

//-->
</script>

</head>
<body>
<div id="test" onclick="count_down.args(this,10)">10 Haz click para iniciar la cuenta atrás</div><br>
<div id="test2" >20 Haz click para iniciar la cuenta atrás</div><br>
<script language="JavaScript" type="text/javascript">
<!--
document.getElementById("test2").onclick = function(){
	count_down.args(this,20);
}
//-->
</script>


</body>
</html>
En este caso utilizo setTimeout, pero como habrás observado se puede prescindir de este método si no es necesario el retraso.


Saludos