Ver Mensaje Individual
  #14 (permalink)  
Antiguo 12/04/2014, 10:26
helion
 
Fecha de Ingreso: mayo-2010
Mensajes: 215
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: solo activar por el ultimo click en onclick

Cita:
Iniciado por patilanz Ver Mensaje
Hola con esto entendi que quieres que se active la alerta si se deja presionado el boton 2 segundos y que no pase nada si solo le den clicks pero nada mas? Te refieres a esto?

Saludos
claro amigo, a eso me refiero a que cuando deje de presionar el boton por 2 segundos ... se muestre solo "1 alerta" y no retome todas las alertas por todos los clicks hechos ...



Cita:
Iniciado por zerokilled Ver Mensaje
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.

hola amigo gracias por responder, veras hmm no uso ajax ... porque recien estoy aprendiendo a manejar javascript ... e usado tu codigo y va bien solo que el problema esta, que si yo hago 3 clicks y sigo procediendo a los clicks me vota 3 alertas, yo quiero que si hago infinidades de clicks y pase en este caso 5 segundos solo me vote una alerta y no que cuente todas las alertas por todos los clicks que he hecho me dejo entender :O ?