目前,我有一个简单的应用程序,将Ajax应用于服务器,获取一些JSON,然后对其进行处理。我想添加消息以显示正在加载图像和其他信息,但是目前我正为simplemodal苦苦挣扎,因为它没有排队模态,因此它一进入就立即触发所有操作。为此写一个队列,效果不是很好:)
该应用程序应:
发送ajax请求(显示模式,停止用户单击任何内容)
Ajax完成(隐藏模式,允许单击)
如果[例如]返回JSON对象已设置“消息”(if (strJson.message)) { }
),则将消息显示为模式
允许用户关闭模式
当他们阅读消息时,如果另一个ajax调用来了又去了,并且我们有更多的模式要显示,则应该将它们排队以显示当前的关闭时间。
这似乎是应该解决的问题,但我看不到任何具体提及的内容。
有任何想法吗? :)
最佳答案
您可以将消息放入数组中,然后在对话框关闭时检查是否有更多消息,是否还有从数组中提取下一条消息并显示出来。这里是使用jQuery UI Dialog的示例。
的HTML
<div id="dialog"></div>
的JavaScript
var messages = [],
addMessage = function (msg) {
messages.push(msg);
if (!$('#dialog').dialog("isOpen")) {
displayMessage();
}
},
displayMessage = function () {
$('#dialog').html(messages.shift()).dialog('open');
};
$(function () {
$('#dialog').dialog({
autoOpen: false,
modal: true,
close: function () {
if (messages.length > 0) {
displayMessage();
}
}
});
addMessage('First Message');
addMessage('Second Message');
});
关于javascript - 可以排队的jQuery Modal,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7300040/