2011-01-20 37 views
2

我想要做的是避免同时显示#login和#signUp,所以有一个检查我可以做到这一点,如果另一个当前正在显示,首先将它向上滑动,然后继续滑动点击触发器?jquery检测是否另一个div当前正在显示

这有道理吗? 。

    $("#loginBtn").click(function(){ 
         $("#login").slideToggle(); 
         return false; 
        }); 

        $("#signUpBtn").click(function(){ 
         $("#signUp").slideToggle(); 
         return false; 
        }); 

回答

3

您可以检查其他的元素,您拨打的slideToggle使用is(":visible")之前是可见的,你调用一个选择的is方法,并在为方法指定:visible选择:

$("selector").is(":visible") 

这将返回truefalse。要在当前的代码实现这一点,你会这么做是这样的:

$("#loginBtn").click(function(){ 
    if($("#signUp").is(":visible")) $("#signUp").slideToggle("fast", slideLoginCallback); 
    else slideLoginCallback(); 

    function slideLoginCallback(){ 
     $("#login").slideToggle(); 
    } 

    return false; 
}); 

$("#signUpBtn").click(function(){ 
    if($("#login").is(":visible")) $("#login").slideToggle("fast", slideSignUpCallback); 
    else slideSignUpCallback(); 

    function slideSignUpCallback(){ 
     $("#signUp").slideToggle(); 
    } 

    return false; 
}); 

因此,这将检查是否#signUp是可见光第一,如果是,它会隐藏它。在#signUp被隐藏之后,将显示#login。如果#signUp不可见,#login将只显示。 #logIn相同,但相反。

+0

喜欢它,我去了这个! – benhowdle89 2011-01-20 12:33:17

4

使用 “:可见”:

$( “#注册”)是( “:可见”);

相关问题