我有一个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
答案 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');
})