javascript - 模态窗口加载动态内容并及时更改

标签 javascript jquery

大家好。

我有一个加载页面的模态窗口,我需要在 90 秒后加载另一个页面。

我有...

    <table id="table4">
    <tr>
        <td>Id:</td>
        <td>Nome:</td>
    </tr>
    <tr>
        <td>1515</td>
        <td>Thiago</td>
    </tr>
    <tr>
        <td>2015</td>
        <td>Guttierre</td>
    </tr>
</table>

根据ID,我将加载该id代表的页面..如http://www.test.com/1515 。 90 秒后我必须加载另一个 ID... http://www.test.com/2015 .

现在我有了这个脚本...

$(document).ready(function() {

//seleciona os elementos a com atributo name="modal"
var aux = 2;
while (($("#table4 tr:nth-child(" + aux + ") td:nth-child(1)") != "")) {

    var idSOS = $("#table4 tr:nth-child(" + aux + ") td:nth-child(1)").text();
    if ((idSOS != "") && (idSOS != undefined) && (idSOS != null) && (idSOS != "Id:")) {


        $("#dialog, #mask,#closediv").css({ 'display': 'block' });
        var maskHeight = "99%";
        var maskWidth = "99%";
        $('#mask').css({ 'width': maskWidth, 'height': maskHeight });

        //Effect
        $('#mask').fadeIn(800);
        $("#dialog").fadeIn(1600);
        $('#mask').fadeTo("slow", 1);
        $('#dialog').fadeTo("slow", 1);

        //
        var winH = $(window).height();
        var winW = $(window).width();
        //centraliza na tela a janela popup
        $("#dialog, #mask").css('top', '2px');
        $("#dialog, #mask").css('left', '2px');

        //

        setTimeout(function() {
            var i = idSOS;
            loadContent(i);
        }, 10000);





        aux++;
        //            continue;
    } //end IF
    else {
        $("#dialog").empty();
        $("#dialog, #mask").hide();
        break;
    };


}; //END WHILE


$("#dialog, #mask").hide();

//se o botão fechar/tela for clicado
$('#closediv').click(function GetOut(e) {
    e.preventDefault();
    $('#mask,#closediv, .window').hide();
});

function loadContent(idSOS) {
    $("#dialog").load('/teste' + idSOS + '.aspx');
};

它只显示div中加载的第二个id。我必须做什么才能加载 DIV“对话框”中加载的第一个 ID,然后在 90 秒后显示第二个 ID?

我哪里出错了?

谢谢大家。

最佳答案

我相信发生这种情况是因为 setTimeout 期望第一个参数是一个字符串,并且您给了它一个函数,该函数可能会立即执行

所以代码应该更像:

setTimeout("function() { ... }", 90000);

但是,您的逻辑似乎仍然存在缺陷,因为“each”语句将创建 2 个 setTimeout() 函数,这两个函数将在 90 秒后同时执行。

这是因为它将迭代存在的两列 (TD) 并每次执行“each”部分中的所有内容。

代码很可能需要更详细的修改。

关于javascript - 模态窗口加载动态内容并及时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4547770/

相关文章:

javascript - 如何操作我刚用 jQuery 添加的元素?

javascript - 如何使用 Chrome 开发工具调试动态添加到页面 head 元素的 javascript 标签?

javascript - 将值添加到选择并排序

javascript - 我可以使用日期对象作为 JSON 对象 javascript 中的键吗?

按下后退按钮时的 Jquery

javascript - 当用户单击后退按钮返回上一个网页时,如何再次调用ajax?

jquery - cakephp 2x + ajax 分页 + 原型(prototype) js

javascript - 使用 jquery load 根据单选值加载 html 内容

javascript - JQuery 迭代当前 SELECT 值

javascript - Firebase 获取服务器时间戳