首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在打开弹出窗口时在JQuery中自动关闭弹出窗口?

问如何在打开弹出窗口时在JQuery中自动关闭弹出窗口?
EN

Stack Overflow用户
提问于 2013-03-25 12:59:17
回答 2查看 2.6K关注 0票数 2

我在一个页面中有3个Jquery弹出窗口。当我打开一个窗口,比如登录弹出窗口,然后打开另一个反馈弹出窗口,当我点击反馈弹出链接时,我需要关闭我的登录弹出窗口。以下是我的登录弹出窗口的示例代码。我也使用了同样的反馈弹出窗口。请帮我解决我的问题。提前感谢大家。

代码语言:javascript
复制
$(document).ready(function() {
    $('a.login-window').click(function() {

      //Getting the variable's value from a link 
        var loginBox = $(this).attr('href');

        //Fade in the Popup
        $(loginBox).fadeIn(300);

        //Set the center alignment padding + border see css style
        var popMargTop = ($(loginBox).height() + 24) / 2; 
        var popMargLeft = ($(loginBox).width() + 24) / 2; 

        $(loginBox).css({ 
            'margin-top' : -popMargTop,
            'margin-left' : -popMargLeft
        });

        // Add the mask to body
        $('body').append('<div id="mask"></div>');
        $('#mask').fadeIn(300);

        return false;
    });

    // When clicking on the button close or the mask layer the popup closed
    $('a.close, #mask').live('click', function() { 
      $('#mask , .login-popup').fadeOut(300 , function() {
        $('#mask').remove();  
    }); 
    return false;
    });
EN

回答 2

Stack Overflow用户

发布于 2013-03-25 15:05:20

向所有三个弹出窗口添加一个公共类。在显示弹出窗口时,先隐藏其他弹出窗口,然后显示当前弹出窗口。

代码语言:javascript
复制
<div class="popup1 popup">Menu</div>
<div class="popup2 popup">Login</div>
<div class="popup3 popup">FeedBack</div> 

JS

代码语言:javascript
复制
$('a.login').click(function(){
    $('.popup').hide();
    ---- your code ----
});
票数 2
EN

Stack Overflow用户

发布于 2013-03-25 14:56:39

更新:抱歉忘记了jQuery的另一半,我现在修正了我的答案。

我不太确定如何让你的代码与你试图做的事情一起工作,但这里有一个我在所有项目中经常使用的代码片段,希望它能帮助你和更多的人。

代码语言:javascript
复制
        var first = true;
        var second = true;

    $(document).ready(function () {
            $(".signup").slideToggle();
            $(".login").slideToggle();
            $("#signup").toggleClass("active");
            $("#login").toggleClass("active");


            $("#signup").click(function () {

                $(".signup").slideToggle();
                first = true;
                $(this).toggleClass("active");
                if (!$("#login").hasClass('active')) {
                    $(".login").slideToggle();
                    second = false;
                    $("#login").toggleClass("active");
                }
                return false;
            });
            $("#login").click(function () {
                $(".login").slideToggle();
                second = true;
                $(this).toggleClass("active");

                if (!$("#signup").hasClass('active')) {
                    $(".signup").slideToggle();
                    first = false;
                    $("#signup").toggleClass("active");
                }
                return false;
            });
        });

下面是我的jQuery片段的超文本标记语言

代码语言:javascript
复制
    <div id="signup">
        Sign Up

    </div>
    <div class="signup">
        Email:<br>
        <input type="text">
        <br>
        Password:<br>
        <input type="password">
        <br>
        Verify Password:<br>
        <input type="password">
    </div>
    <div id="login">
        Login

    </div>
    <div class="login">
        Email:<br>
        <input type="email">
        <br>
        Password:<br>
        <input type="password">
    </div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15607950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档