Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Desactivar/activar un boton

Estas en el tema de Desactivar/activar un boton en el foro de Jquery en Foros del Web. Hola a todos. Mi problema es que estoy intentando que un boton, al pulsarlo, solo se ejecute una vez, es decir, desactivarlo una vez pulsado ...
  #1 (permalink)  
Antiguo 26/10/2014, 14:14
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Desactivar/activar un boton

Hola a todos. Mi problema es que estoy intentando que un boton, al pulsarlo, solo se ejecute una vez, es decir, desactivarlo una vez pulsado una vez. Pero luego, quiero activarlo de nuevo.

Código:
$('#continuar').click(function() {
		$('#continuar').unbind('click'); 
		
		$( "#final" ).fadeOut(1800,function() {
			$('#continuar').bind('click'); 
		});
}
Se supone que el boton '#continuar' está dentro de la capa "#final" . Se desactiva bien y solo funciona la primera vez que hago click. Luego la capa desaparece con fadeOut, pero luego, mas tarde no se vuelve a activar el boton cuando vuelvo a mostrar la capa "#final". Creo que es de un mal uso del bind, verdad?
  #2 (permalink)  
Antiguo 26/10/2014, 17:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Desactivar/activar un boton

Lo que pasa es que no le asignas una función a ejecutar, por eso no ocurre nada.

Código Javascript:
Ver original
  1. function fn(){
  2.     console.log("foo");
  3. }
  4.  
  5. $('#continuar').on("click", function(){
  6.     var self = $(this); //Tomo una referencia del elemento actual
  7.     fn(); //Ejecuto la función
  8.     self.off("click"); //Desvinculo el evento del elemento actual
  9.        
  10.      $("#final").fadeOut(1800,function() {
  11.           self.on("click", fn); //Vinculo el evento al elemento actual asignándole la función 'fn'
  12.      });
  13. });

La única diferencia estará en que, la segunda vez que des un clic al elemento, ya no ocultarás al elemento de id 'final', solo se ejecutará la función 'fn'.

Otra alternativa de solución consiste en deshabilitar al elemento y volver a habilitarlo.

Código Javascript:
Ver original
  1. $('#continuar').on("click", function(){
  2.     var self = $(this);
  3.     console.log("foo");
  4.     self.prop("disabled", true); //Deshabilito al elemento
  5.        
  6.     $("#final").fadeOut(1800,function() {
  7.         self.prop("disabled", false); //Habilito al elemento
  8.     });
  9. });

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 27/10/2014, 06:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 33
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Desactivar/activar un boton

Muchas gracias, problema resuelto.

Etiquetas: boton
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:35.