Php jQueryUI模式确认删除ajax加载的行

Php jQueryUI模式确认删除ajax加载的行,php,jquery,ajax,jquery-ui,jquery-ui-dialog,Php,Jquery,Ajax,Jquery Ui,Jquery Ui Dialog,我有一个PHP脚本(ajax.PHP),它从MySQL数据库加载内容。该脚本通过AJAX每N秒刷新一次新内容。AJAX内容有三个链接,其中一个链接用于在MySQL中归档该行。当用户单击存档按钮时,我希望打开一个jQueryUI对话框来确认删除。按cancel将中止,而OK将触发AJAX提交以从MySQL中删除该行。这是我想做的对话的一半的例子。我需要它与ajax/刷新一起工作 由于链接本身由AJAX加载,我无法运行对话框(或删除脚本)。如何加载对话框脚本并执行AJAX删除提交?我正在尝试使用Gl

我有一个PHP脚本(ajax.PHP),它从MySQL数据库加载内容。该脚本通过AJAX每N秒刷新一次新内容。AJAX内容有三个链接,其中一个链接用于在MySQL中归档该行。当用户单击存档按钮时,我希望打开一个jQueryUI对话框来确认删除。按cancel将中止,而OK将触发AJAX提交以从MySQL中删除该行。这是我想做的对话的一半的例子。我需要它与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');
})

谢谢你的回复。我试过了,但还是不走运。刷新工作正常,但归档链接仍然像没有对话框的标准HTML链接一样。根据我在别处读到的内容,我假设在加载链接后,我需要调用链接上的对话框脚本,但我不太了解如何执行。啊,好吧,现在我了解你的问题了。这是因为事件侦听器在AJAX刷新后不再侦听。AJAX请求需要时间,绑定事件将在AJAX请求准备就绪之前完成。这意味着您的
单击
绑定将在HTML准备就绪之前尝试绑定。使用
document.on
归档绑定动态内容。我更新了我的答案。试试看,我想这会解决你的问题。