2010-09-23 29 views
11

我使用這個,如何在jquery中檢查div的顯示(無/塊)?

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

一切工作正常,但是當signin_menu1顯示塊,我點擊的div股利slidesup在我的鼠標按鈕會發生什麼是......我想鼠標鬆開功能可以防止當顯示塊signin_menu1。所以我想改變,如病情,

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

現在如何檢查顯示?

回答

16

嘗試

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

我很困惑的問題,但$("#signin_menu1").is(':visible')會檢查,如果DIV是可見的(顯示:塊)。

補充說明:

您可以嘗試檢查$(e.target)signin_menu1或者是內部signin_menu1。這樣做,

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

它可以工作,但當div點擊在div外 – Mubeen 2010-09-23 07:21:14

+0

時我不想滑動div我想阻止div內的mouseup事件 – Mubeen 2010-09-23 07:25:51

+0

請參閱**添加備註:** – Reigel 2010-09-23 07:28:36

相關問題