0

我有一个由 AJAX 调用生成的表格,准备好文档。单击表中的元素时,将打开一个对话框,可以在其中编辑元素。

单击保存按钮时,更改将被保存回来,对话框关闭正常,但我想触发重新加载生成表的 AJAX。

经过多次编辑,这是当前代码。我添加了一个控制台日志以获取更多信息。

当使用 X 关闭图标(未保存)关闭模式对话框时,控制台日志将按预期报告。如果我在调用另一组代码的模式中单击保存,控制台日志会在几秒钟内报告相同的事情 100 次。刷新就是阻止它的全部。

$(document).ready(function () {

    $("#elementView").dialog({
        autoOpen: false,
        modal: true,
        width: 900,
        height: 500,
        resizable: false,
        close: function () {

            $("#elementholder").html('Loading elements...<br /><br />');

            var jobid = <?= $_GET[jobID]; ?>

            console.log("performing post to get elements list for jobID " + jobid);

            $.ajax({
                type: "POST",
                url: "ajax_listelements.php",
                data: "jobid=" + jobid,

                success: function (msg) {

                    // alert ("success");

                    if (msg == 'error') {
                        $("#elementholder").html('<font color="red"><b>Error</b></font>');
                    } else {
                        $("#elementholder").html(msg);
                    }

                } // complete AJAX success          
            }); // complete AJAX
        } // complete close function                                                        
    }); // complete modal


    // detect row click on elements page to open modal

    tr = $('#elementtable').find('tr');

    // 1.7.1:  live is deprecated in 1.9, would need to change on jQuery ON 
    tr.live('click', function (event) {

        elementID = $(this).find("td.thisID span").html();

        // modal content loaded from mdl_element.php using ID
        $('#elementView').load('mdl_elementview.php?elementID=' + elementID).dialog('open');

    });

});
4

1 回答 1

0

一个额外的 ajaxComplete 函数,在这个页面上的 AJAX 调用加载的一个单独的 PHP 文件中,导致了它。@Garytja 提出的删除 ajaxComplete 函数的建议导致了更多的测试,而代码在其他地方重复的建议导致了另一个文件。

现在效果很好。

于 2013-07-29T16:29:38.890 回答