2013-03-25 102 views
2

我在页面中有3个Jquery弹出窗口。当我打开一个窗口说登录弹出窗口,然后我打开另一个说反馈弹出窗口,我需要让我的登录弹出窗口关闭,当我点击反馈弹出链接。 以下是我登录弹出窗口的示例代码。我也使用相同的反馈弹出窗口。请帮助我查询。 谢谢大家提前。如何在另一个弹出窗口打开时自动关闭JQuery中的弹出窗口?

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

你试试这个http://stackoverflow.com/questions/5274109/javascript-close-popup-open-new-window-redirect – btevfik 2013-03-25 05:07:22

+0

向我们提供您的http://jsfiddle.net/(使用HTML,CSS,jQuery和其他库),以便我们更轻松地查看代码和帮助。 – kyooriouskoala 2013-03-25 07:26:52

+0

@btevfik我想在jQuery中的代码,以便我可以用动画写入它,以弹出我的弹出窗口。 – vickythegme 2013-03-27 03:03:54

回答

0

更新:对不起忘了另一半的jQuery,我现在修复了我的答案。

我不太确定如何让你的代码与你想要做的工作有关,但是我的代码片段在我的所有项目中都用了很多,希望它可以帮助你,还有更多。

 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; 
      }); 
     }); 

和继承人的HTML矿

<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

感谢您的回答。但我需要将它作为一种独立的弹出式外观​​,以便当我点击另一个链接时,打开的链接应该关闭。反正让我尝试改变你的代码弹出。非常感谢。!! – vickythegme 2013-03-27 03:12:17

2

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

<div class="popup1 popup">Menu</div> 
<div class="popup2 popup">Login</div> 
<div class="popup3 popup">FeedBack</div> 

JS

$('a.login').click(function(){ 
    $('.popup').hide(); 
    ---- your code ---- 
}); 
+0

感谢您的代码。有效。在我有很多线路要做之前。现在看起来只是所有click()函数中的一行。谢谢。 – vickythegme 2013-03-27 03:49:42

+0

@vickythegme,既然你评论说这个答案有效,请让其他用户知道答案,并提出你喜欢的答案。它可以奖励回答问题的人,也可以让具有相同问题的人更快地看到正确答案。它只需要点击一个按钮。感谢您的时间。 – RoyalleBlue 2013-06-12 22:18:46