2

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

那有意义吗?

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

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

2 回答 2

4

使用“:可见”:

$("#signUp").is(":visible");

于 2011-01-20T12:29:13.927 回答
3

您可以在调用 slideToggle 之前检查其他元素是否可见,您可以在选择器上is(":visible")调用该is方法并在 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;
});

So this will check if #signUp is visible first and if it is, it will hide it. After the #signUp has been hidden, the #login will show. If #signUp is not visible, #login will just show. The same for #logIn but the other way around.

于 2011-01-20T12:31:28.697 回答