2010-09-23 6 views
11

ich dies verwenden,Wie Anzeige (keine/Block) eines Div in Jquery überprüfen?

$("#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"); 
    } 
}); 

Alles funktioniert gut, aber was passiert, wenn der signin_menu1 Block angezeigt wird, und i innerhalb des div div slidesup meine Maustaste klicken ... I mouseup Funktion soll, wenn verhindert werden soll Der signin_menu1 wird angezeigt. Also dachte ich, wie der Zustand zu ändern,

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

Nun, wie die Anzeige zu überprüfen?

Antwort

16

versuchen

$(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"); 
    } 
}); 

ich mit dem Problem bin verwirrt, aber $("#signin_menu1").is(':visible') würde überprüfen, ob die div sichtbar ist (Anzeige: Block).

Anmerkungen hinzugefügt:

Sie können versuchen, zu überprüfen, ob die $(e.target) die signin_menu1 ist oder ist innerhalb signin_menu1. Sie es so,

$(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

funktioniert es, aber das div rutscht nicht nach oben, wenn ich außerhalb des div klicke – Mubeen

+0

Ich möchte mouseup event innerhalb des div – Mubeen

+0

verhindern siehe ** Anmerkungen hinzugefügt: ** – Reigel

Verwandte Themen