jQueryUI 模态确认删除 ajax 加载的行


jQueryUI modal confirms deletion of ajax-loaded row

我有一个PHP脚本(ajax.php),它从MySQL数据库加载内容。该脚本通过 AJAX 每 N 秒刷新一次新内容。AJAX内容有三个链接,其中一个是存档MySQL中的行。当用户单击存档按钮时,我希望打开一个 jQueryUI 对话框以确认删除。按取消将中止,而确定将触发 AJAX 提交以从 MySQL 中删除该行。使用模式表单确认从表中删除行 (jQuery UI)?是我想做的对话的一半示例。我需要它与 ajax/刷新一起工作。

由于链接本身是由 AJAX 加载的,我无法运行对话框(或删除脚本)。如何加载对话框脚本并执行 AJAX 删除提交?我正在尝试使用GlobalEval,但我不理解文档。我找到的示例似乎仅用于设置变量。以下脚本是我尝试从中构建它的脚本:

var id = $('.refreshN').data('id');
var table = $('.refreshN').data('table');
var rtime = $('.refreshN').data('time');
$('.refreshN').load('ajax.php?id='+id+'&table='+table).fadeIn("slow");
var autoLoad = setInterval(
function ()
{
    $('.refreshN').load('ajax.php?id='+id+'&table='+table).fadeIn(5000);
    var script = $(function (){
        $('.modalLink').click(function () {
            $('#dialog').dialog('open');
            return false;
        });
    });
    eval(script);
}, rtime); // refresh page every N seconds

使用普通的 JavaScript 函数定义变量script并添加()来执行它。试试这个代替你当前的js:

var id = $('.refreshN').data('id');
var table = $('.refreshN').data('table');
var rtime = $('.refreshN').data('time');
$('.refreshN').load('ajax.php?id='+id+'&table='+table).fadeIn("slow");
var autoLoad = setInterval(
function ()
{
    $('.refreshN').load('ajax.php?id='+id+'&table='+table).fadeIn(5000);
}, rtime); // refresh page every N seconds
$(document).on('click','.modalLink',function(e){
    e.preventDefault();
    $('#dialog').dialog('open');
})