Ver Mensaje Individual
  #13 (permalink)  
Antiguo 12/04/2014, 07:22
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: solo activar por el ultimo click en onclick

buenas,
lo que entiendo del tema es que se busca limitar el click mientras se va actualizando la base de datos. con esto asumo que está usando AJax para enviar los datos a la base de datos. sea o no con Ajax, la técnica es muy similar. de momento me asalta una duda, ¿cómo determinas el tiempo requerido de espera para volver habilitar la acción? ¿debe ser un tiempo fijo o mientras se actualiza la base de datos?

si es por un tiempo fijo, la sugerencia de @djoaq es una alternativa. solo que en su código de ejemplo hay un error; la variable temp debe ser global. también debes tener cuidado de si quieres extender el tiempo de espera en cada click.

Código:
// tiempo fijo, en cada click se extiende la espera ;
function activo(){
clearTimeout(temp);
temp = setTimeout(function(){
alert("mnsj");
},5000);
var temp = null;

// tiempo fijo, no se extiende el tiempo de espera ;
function activo(){
if (!isNaN(temp)) return;
temp = setTimeout(function(){
alert("mnsj");
temp = null;
},5000);
var temp = null;
de forma similar se puede hacer si el tiempo de espera es mientras se actualiza la base de datos. en este caso, debes crear una variable tipo flag. es decir, cuando se activa la función, se inicia la variable a un valor que provoque una salida prematura al volver invocar la misma función; parecido al segundo código. para restaurar la variable, una vez termine la actualización de la base de datos, cambias el valor de dicha variable. nuevamente, aquí pienso que estás usando Ajax. entonces, la restauración la haces al completarse la comunicación de Ajax con el servidor.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.