jQuery:在成功登录ajax时继续自定义单击事件

问题描述

| 我有一组点击事件链接添加到愿望清单)。 click事件检查用户是否已登录(ajax请求),并根据结果继续单击。在用户登录的情况下,我有一个通用的jQuery UI模式对话框,用户可以使用该对话框登录。 一切正常,但是我想扩展功能,以便用户在使用对话框登录后可以继续单击链接。 即。单击添加到收藏夹->已登录? 是->继续点击链接添加到愿望清单) 否->显示登录对话框-> 用户提交凭证->已登录? 是=>继续点击链接添加到 愿望清单) 否=>显示登录错误 当然,我不想通过ajax和jquery进行任何回发。 谢谢     

解决方法

        您可以将click操作的url传递给登录模式,并在成功登录后重定向。 或者,如果将其设置为通过AJAX登录,则可以存储click事件目标,然后在成功登录后触发click事件。 类似于以下内容:
var is_logged_in = false;

$(\'a.add_to_wishlist\').click(function(e) {
  if(is_logged_in) {
    //do stuff
  } else {
    show_modal(e.target); //pass the event target to the modal
  }
});

function show_modal(trigger) {
  //do stuff
  is_logged_in = true;

  $(trigger).trigger(\'click\');
}
希望这会有所帮助。     ,        如果您控制服务器端代码,则应在同一请求中放置身份验证+保存到愿望清单。 用户点击添加到愿望清单 将页面添加到愿望清单的Ajax请求发送到服务器。 服务器检查用户是否已登录。 如果用户已登录:将项目保存到愿望清单并返回成功响应。 如果用户未登录:返回失败的响应。 ajax响应回调应基于响应更新UI。 如果您不受服务器代码的控制,那么如果身份验证请求成功,则必须发出两个ajax请求。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...