2010-09-23 14 views
11

estoy usando esto,Cómo verificar la visualización (ninguno/bloque) de un div en jquery?

$("#loginanchor1").click(function (e) { 
    e.preventDefault(); 
    $("#signin_menu1").slideDown("slow"); 
}); 
$(document).mouseup(function (e) { 
    if ($(e.target).parent("a.loginanchor1").length == 0) { 
     //$(".signin").removeClass("menu-open"); 
     $("#signin_menu1").slideUp("slow"); 
    } 
}); 

Todo funciona bien, pero lo que sucede es cuando el signin_menu1 aparece bloque y hago clic mi botón del ratón dentro de la div slidesup la div ... Quiero función mouseup ser evitado cuando el signin_menu1 se muestra bloque. Así que pensé en el cambio de la condición,

if(($(e.target).parent("a.loginanchor1").length==0) &&(//check the display of the div)

Ahora cómo comprobar la pantalla?

Respuesta

16

tratar

$(document).mouseup(function (e) { 
    var $parent = $(e.target).parent("a.loginanchor1"); 
    if ($parent.length == 0 && !$("#signin_menu1").is(':visible')) { 
     //$(".signin").removeClass("menu-open"); 
     $("#signin_menu1").slideUp("slow"); 
    } 
}); 

Estoy confundido con el problema, pero $("#signin_menu1").is(':visible') comprobaría si el div es visible (display: block).

añaden notas:

puede tratar de comprobar si el $(e.target) es el signin_menu1 o está dentro signin_menu1. hacerlo de esta manera,

$(document).mouseup(function (e) { 
    if ($(e.target).is('#signin_menu1') || $(e.target).closest('#signin_menu1').length > 0) { return ; } // do nothing on mouseup 
    var $parent = $(e.target).parent("a.loginanchor1"); 
    if ($parent.length == 0) { 
     //$(".signin").removeClass("menu-open"); 
     $("#signin_menu1").slideUp("slow"); 
    } 
}); 
+0

funciona pero el div no se desliza cuando hago clic fuera del div – Mubeen

+0

quiero evitar el evento del mouseup dentro del div – Mubeen

+0

ver ** notas agregadas: ** – Reigel

Cuestiones relacionadas