2

我有一个点击事件A,当触发时,它将检查用户是否登录。如果用户未登录,则会触发模式登录窗口并用户登录。当用户点击登录按钮时,执行登录并将执行传递回单击事件A并继续执行。

$('.A').on('click',function(){
   //Check if logged in
   if(!logged_in())
   {
      var r = confirm("you are not logged in. Do you want to login/register"?);
      if(r)
           $('#login_link').click();
      else return
   }   

   //Continue execution if logged in
   //Execution of code
});

我的#login_link 是登录的模式窗口。用户点击模式窗口上的登录按钮时的jquery

$('#sign_in').click(function(){
 //perform log in function
 if(success)
     window.location.assign(window.location.href);
});

当用户成功登录时,它将保留在它所在的页面上。但是现在登录后,我希望执行返回到A上的点击事件。这两个事件在不同的js文件中,但页面引用了它们。任何人都可以帮助我吗?在此先感谢!

4

1 回答 1

0

事件是异步的。您不能返回返回,因为代码将继续立即运行。您要做的是为事件创建函数。该函数login.Alogin.sign_in可以只是对象之外的函数。这只是为了展示一种可能性。喜欢:

var login = {
    A : function(){
        //Check if logged in
       if(!logged_in())
       {
          var r = confirm("you are not logged in. Do you want to login/register"?);
          if(r)
               login.sign_in();
          else return
       }   

       //Continue execution if logged in
       //Execution of code
    },
    sign_in : function(){
        //perform log in function
        if(success)
             window.location.assign(window.location.href);

        return "back to A, or end the click event of #sign_in";

    }
};

$(".A").click(login.A);
$("#sign_in").click(login.sign_in);
于 2013-03-02T10:14:07.813 回答