繁体   English   中英

将执行从js文件中的单击事件传递到另一个js文件中的另一个函数

[英]Passing execution from one click event in js file to another function in another js file

我有一个单击事件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上的click事件。这两个事件位于不同的js文件中,但是页面引用了这两个事件。 有人可以帮助我吗?谢谢!

事件是异步的。 您无法返回,因为代码将立即继续运行。 您要做的就是为事件创建函数。 函数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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM