目前,我有一个简单的应用程序,将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/

10-09 13:57