Вопрос

Я использую DataTables для отображения данных строк, в последнем столбце справа есть 2 изображения: одно для редактирования и одно для удаления.Чтобы перехватить событие щелчка, я использую:

 $('#datatable tbody tr a.delete img').live( 'click', function () {
        });

Друг дал мне этот код, чтобы попробовать..

function fancyAlert(msg) {
        jQuery.fancybox({
        'modal' : true,
        'content' : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input style=\"margin:3px;padding:0px;\" type=\"button\" onclick=\"jQuery.fancybox.close();\" value=\"Ok\"></div></div>"
        });
    }

    function fancyConfirm(msg,callback) {
        var ret;
        jQuery.fancybox({
            modal : true,
            content : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input id=\"fancyConfirm_cancel\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Cancel\"><input id=\"fancyConfirm_ok\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Ok\"></div></div>",
            onComplete : function() {
                jQuery("#fancyConfirm_cancel").click(function() {
                    ret = false;
                    jQuery.fancybox.close();
                })
                jQuery("#fancyConfirm_ok").click(function() {
                    ret = true;
                    jQuery.fancybox.close();
                })
            },
            onClosed : function() {
                callback.call(this,ret);
            }
        });
    }

    function fancyConfirm_text() {
        fancyConfirm("Ceci est un test", function(ret) {
        alert(ret)
        })
    }

Это работает, когда я использую его следующим образом:

$('#datatable tbody tr a.delete img').live( 'click', function () {

     if (!fancyConfirm("Are you sure you want to delete this record?"))
            e.preventDefault();

 });

Меня смущает часть обратного вызова, потому что, когда я нажимаю «Отменить», поле исчезает, но страница по-прежнему становится серой и заблокирована.Я хочу сделать следующее: если пользователь нажмет кнопку «Отмена», чтобы завершить работу и вернуться в нормальное состояние, и если пользователь нажмет «ОК», тогда мне нужно будет передать var rowID в файл «delete_row.php»...Но для меня это новая территория..Если бы это была простая html-ссылка, я мог бы получить .val и все готово, но в DataTables у меня нет такой возможности..

Может ли кто-нибудь здесь указать мне в правильном направлении?Я перегуглил это до смерти, но не смог найти информацию о своих требованиях к использованию.

Это было полезно?

Решение

А fancyConfirm функция ожидает функцию обратного вызова, если она не указана, в FancyBox возникает ошибка onclosed событие, которое может объяснить, почему оно остается серым.

Попробуйте изменить вызов на:

fancyConfirm("Are you sure you want to delete this record?", function(ret) { })
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top