我试图做的是避免同时显示#login和#signUp,所以如果当前正在显示另一个,我可以做一个检查,首先将其向上滑动,然后继续点击被点击的触发器?
这有意义吗?
$("#loginBtn").click(function(){
$("#login").slideToggle();
return false;
});
$("#signUpBtn").click(function(){
$("#signUp").slideToggle();
return false;
});
答案 0 :(得分:4)
使用“:visible”:
。$( “#注册”)是( “:可见”);
答案 1 :(得分:3)
您可以在使用is(":visible")
调用slideToggle之前检查其他元素是否可见,您在选择器上调用is
方法并在is方法中指定:visible
选择器:
$("selector").is(":visible")
它将返回true
或false
。要在当前代码中实现这一点,您可以这样做:
$("#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也是一样,但反过来。