2013-03-02 72 views
2

我有一个点击事件A,当触发时,它将检查用户是否登录。如果用户未登录,模式登录窗口将被触发并且用户登录。当用户点击登录按钮时,登录被执行并且执行被返回到点击事件A并且继续执行。将执行从js文件中的一个点击事件传递到另一个js文件中的另一个函数

$('.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文件中,但是页面引用了它们两个。任何人都可以帮助我?提前致谢!

回答

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); 
相关问题