问题描述
|
我有一组点击事件链接(添加到愿望清单)。 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请求。