Question

J'utilise DataTables aux données de ligne d'affichage, dans la dernière colonne à droite ont 2 images ont, l'un pour éditer et un pour supprimer. Afin de piéger l'événement clic-je utiliser:

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

Un ami m'a donné ce code pour essayer ..

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)
        })
    }

Ce qui fonctionne quand je l'utilise comme:

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

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

 });

Je suis confus au sujet de la part de rappel parce que quand je clique sur « Annuler » la case disparaît, mais la page est toujours grisé et verrouillé. Ce que je veux faire est de savoir si l'utilisateur clique annuler à la fin et revenir à la normale et si l'utilisateur clique sur « Ok » alors je dois passer var rowID dans un fichier « delete_row.php » ... Mais ce qui est nouveau territoire moi .. Si c'était un lien simple html je peux obtenir le .val et être fait, mais dans DataTables je n'ai pas cette option ..

Quelqu'un peut-il me pointer ici dans la bonne direction? J'ai googlé ce à la mort, mais je suis incapable de trouver des informations sur mes exigences d'utilisation.

Était-ce utile?

La solution

La fonction fancyConfirm attend la fonction de rappel, lorsqu'ils ne sont pas donné il y a une erreur dans l'événement onclosed fancybox ce qui pourrait expliquer pourquoi il reste gris.

Essayez de changer l'appel à:

fancyConfirm("Are you sure you want to delete this record?", function(ret) { })
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top