这里有一些非常有趣的问题可以用来停止执行,其中大部分问题都与在允许其他事情发生之前暂停一段时间有关。
我的jquery mobile 1.3.2中有一个稍微不同的场景,其中包含以下功能,可以将事件添加到用户的日历中。
function addToMyCal(typ,id)
{
loginReq();
addToUsrCal(window.wh2usr,"spscId",id);
}
// login required
function loginReq()
{
// check cookie
if (! loginCheck())
$('#popupLogin').popup('open')
}
我观察到,如果用户未登录,则会显示登录弹出窗口,但不会暂停以获取用户凭据。而是显示登录弹出窗口,立即调用addToUsrCal(),因为没有用户信息而失败。
那么我该如何1)要么等到用户提供凭证而没有超时,要么2)允许用户取消登录并返回到他们在网站上的位置?
由于
答案 0 :(得分:1)
您对$('#popupLogin').popup
的来电并不等待任何用户互动 - 它只会显示弹出窗口并立即返回。然后loginReq
函数完成并返回给调用者addToMyCal
。从那里开始执行addToMyCal
中的下一行 - 调用addToUsrCal
。
如果您只想在某些用户输入后调用addToUsrCal
,那么您需要将该函数调用移至回调函数 - 可能与表单上的提交操作或单击操作相关联提交按钮(这些按钮可能已存在于您的弹出窗口内容中)。
同样,您可以在弹出窗口中的取消按钮中添加一个回拨来关闭弹出窗口(使用对$('#popupLogin').popup("close")
的调用。