Модальный jQueryUI подтверждает удаление ajax-загруженной строки

У меня есть PHP-скрипт (ajax.php), который загружает контент из базы данных MySQL. Этот скрипт обновляет новый контент каждые N секунд через AJAX. Содержимое AJAX имеет три ссылки, одна из которых предназначена для архивирования строки в MySQL. Когда пользователь нажимает кнопку архива, я хочу, чтобы открылось диалоговое окно jQueryUI, подтверждающее удаление. Нажатие на отмену будет прервано, в то время как OK вызовет отправку AJAX для удаления строки из MySQL. Удаление строки из таблицы с подтверждением модальной формы (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

Решение

Определите переменную script с нормальной функцией JavaScript и добавить () выполнить это.
Попробуйте это вместо вашего текущего 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');
})
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]