jQuery:成功登录ajax后继续自定义点击事件



我有一组带有点击事件的链接(添加到愿望列表)。单击事件检查用户是否已登录(ajax请求),并根据结果继续单击。在用户没有登录的情况下,我有一个通用的jQueryUI模式对话框,用户可以使用它登录

这一切都很好,但我想扩展功能,以便在用户使用对话框登录后继续单击链接。

即。点击添加到心愿单->登录?

  • 是->继续链接单击(添加到愿望列表)
  • 否->显示登录对话框->用户提交凭据->已登录?

  • 是=>继续链接单击(添加到愿望清单)

  • NO=>显示登录错误

当然,我不想通过ajax和jquery执行任何回发。

感谢

您可以将点击操作的url传递到登录模式,并在成功登录后重定向。或者,如果您已将其设置为通过AJAX登录,则可以存储点击事件目标,然后在成功登录后触发点击事件。

类似以下内容:

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

希望这能有所帮助。

如果您可以控制服务器端代码,那么您应该将身份验证+保存到愿望列表放在同一请求中。

  1. 用户单击"添加到愿望列表"
  2. 将页面添加到愿望列表的Ajax请求发送到服务器
  3. 服务器检查用户是否已登录。
    1. 如果用户登录:将项目保存到愿望列表并返回成功响应
    2. 如果用户未登录:返回一个失败的响应
    3. ajax响应回调应该根据响应更新UI

如果您无法控制服务器代码,那么如果身份验证请求成功,则必须发出两个ajax请求。

最新更新