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

时间:2014-11-26 01:03:20

标签: php jquery ajax jquery-ui jquery-ui-dialog

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

由于链接本身是由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

1 个答案:

答案 0 :(得分:1)

使用普通的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');
})