Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/11/2013, 11:32
Avatar de WArriola
WArriola
 
Fecha de Ingreso: marzo-2007
Mensajes: 13
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: La funcion se activa con el segundo clic

Gracias por la pronta respuesta Maganius, si bien tu ejemplo no me sirve, pq en realidad son 4 formularios los que se encuentran en esa función, error mío al no aclararlo; pero de todas formas de ayudó a darme cuenta cual era el error que cometía y ahora lo pude solucionar gracias a tu pista: yo la funcion antes la tení así:

Código:
		function mostrar(){
			$('.button1').click(function() {
				type = $(this).attr('data-type');
				$('.overlay1').fadeIn(function(){window.setTimeout(function(){$('.form1.'+type).addClass('window-container-visible');}, 100);});
			});
			$('.button2').click(function() {
				type = $(this).attr('data-type');
				$('.overlay2').fadeIn(function(){window.setTimeout(function(){$('.form2.'+type).addClass('window-container-visible');}, 100);});
			});
			$('.button3').click(function() {
				type = $(this).attr('data-type');
				$('.overlay3').fadeIn(function(){window.setTimeout(function(){$('.form3.'+type).addClass('window-container-visible');}, 100);});
			});
			$('.button4').click(function() {
				type = $(this).attr('data-type');
				$('.overlay4').fadeIn(function(){window.setTimeout(function(){$('.form4.'+type).addClass('window-container-visible');}, 100);});
			});
		}
Ahora basándome en tu guía la dejá así:

Código:
function mostrar1(){
	type = $(this).attr('data-type');
	$('.overlay1').fadeIn(function(){window.setTimeout(function(){$('.form1.'+type).addClass('window-container-visible');}, 100);});
}
function mostrar2(){
	type = $(this).attr('data-type');
	$('.overlay2').fadeIn(function(){window.setTimeout(function(){$('.form2.'+type).addClass('window-container-visible');}, 100);});
}
function mostrar3(){
	type = $(this).attr('data-type');
	$('.overlay3').fadeIn(function(){window.setTimeout(function(){$('.form3.'+type).addClass('window-container-visible');}, 100);});
}
function mostrar4(){
	type = $(this).attr('data-type');
	$('.overlay4').fadeIn(function(){window.setTimeout(function(){$('.form4.'+type).addClass('window-container-visible');}, 100);});
}
Y el llamado a la función también lo modifique quedándos así:
Código HTML:
 <input type="button" onclick="mostrar1();" value="Nuevo" class="button button1" data-type="zoomin" /> - 
				<input type="button" onclick="mostrar2();" value="Eliminar" class="button button2" data-type="zoomin" /> - 
				<input type="button" onclick="mostrar3();" value="Modificar" class="button button3" data-type="zoomin" /> - 
				<input type="button" onclick="mostrar4();" value="Buscar" class="button button4" data-type="zoomin" /> 
Y ahora si me funciona perfectamente.

Es que yo querpía colocar todo el codigo en una úinica función, pero ahora me doy cuenta que colocaba funciones dentro de una función, y por eso debía hacer dos veces clic.

Gracias por la ayuda que me abrió los ojos