Foros del Web » Programando para Internet » Jquery »

Cerrar un div con un click afuera (JQuery)

Estas en el tema de Cerrar un div con un click afuera (JQuery) en el foro de Jquery en Foros del Web. Hola, tengo un login con jquery y js, (en el enlace onclick="open_login_box()" class="enlace", haciendo click en este abre el login_box y le da una class ...
  #1 (permalink)  
Antiguo 09/12/2010, 17:48
 
Fecha de Ingreso: febrero-2010
Mensajes: 27
Antigüedad: 14 años, 2 meses
Puntos: 0
Pregunta Cerrar un div con un click afuera (JQuery)

Hola, tengo un login con jquery y js, (en el enlace onclick="open_login_box()" class="enlace", haciendo click en este abre el login_box y le da una class "here" al enlace, pero solo haciendo click en es mismo enlace remueve la class "here" y cierra el login_box)


Código:
// Login box
function open_login_box(action){
	if($('#login_box').css('display') == 'block' && action!='open')
		close_login_box();
	else{
		$('.enlace').addClass('here'); 
		$('#login_box').fadeIn('fast');	}}


function close_login_box(){
		$('.enlace').removeClass('here');
		$('#login_box').fadeOut('slow');}

Quisiera que haciendo un click fuera del "login_box" este se cierre. Probè con este còdigo:

Código:
$(document).mouseup(function(e) {  
		$('.enlace').removeClass('here');
		close_login_box();
	});
Pero haciendo click incluso en el mismo div "login_box" se cierra. Tambièn probè incluyendo un onblur="close_login_box()" dentro del div del login_box pero no obtuve resultados.
Alguna solucion? Muchas gracias!
  #2 (permalink)  
Antiguo 09/12/2010, 18:25
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 3 meses
Puntos: 13
Respuesta: Cerrar un div con un click afuera (JQuery)

Cita:
Iniciado por rnld55u Ver Mensaje
Hola, tengo un login con jquery y js, (en el enlace onclick="open_login_box()" class="enlace", haciendo click en este abre el login_box y le da una class "here" al enlace, pero solo haciendo click en es mismo enlace remueve la class "here" y cierra el login_box)


Código:
// Login box
function open_login_box(action){
	if($('#login_box').css('display') == 'block' && action!='open')
		close_login_box();
	else{
		$('.enlace').addClass('here'); 
		$('#login_box').fadeIn('fast');	}}


function close_login_box(){
		$('.enlace').removeClass('here');
		$('#login_box').fadeOut('slow');}

Quisiera que haciendo un click fuera del "login_box" este se cierre. Probè con este còdigo:

Código:
$(document).mouseup(function(e) {  
		$('.enlace').removeClass('here');
		close_login_box();
	});
Pero haciendo click incluso en el mismo div "login_box" se cierra. Tambièn probè incluyendo un onblur="close_login_box()" dentro del div del login_box pero no obtuve resultados.
Alguna solucion? Muchas gracias!
Claro porque allí no le dices dónde.. solo si se pulsa (bueno, si se suelta) el ratón; yo no se como hacerlo, pero tienes que averiguar cómo saber dónde se ha pulsado el ratón y comparar.. no?
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #3 (permalink)  
Antiguo 09/12/2010, 21:21
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Cerrar un div con un click afuera (JQuery)

Dices que haciendo fuera del div #login-box?
Se me ocurre que cambies el onclick de cada enlace, dejandolo asi;
<a href="pagina.php" name="nombre">Ejemplo</a>
Despues, se hace lo demas con jQuery;
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     $('[name=nombre]').click(open_login_box);
  3.     $('body').click(close_login_box);
  4. }

Eso es lo que se me ocurre..
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: efecto, login, javascript
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 23:15.