1

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();

 });

[キャンセル]をクリックするとボックスは消えますが、ページはまだグレー表示されてロックされているため、コールバック部分について混乱しています。私がやりたいのは、ユーザーが[キャンセル]をクリックして終了し、通常に戻る場合です。ユーザーが[OK]をクリックすると、varrowIDをファイル"delete_row.php"に渡す必要があります...しかし、これはの新しい領域です。 me ..単純なhtmlリンクの場合、.valを取得して実行できますが、DataTablesにはそのオプションがありません。

ここの誰かが私を正しい方向に向けることができますか?私はこれをグーグルで検索しましたが、使用要件に関する情報を見つけることができません。

4

1 に答える 1

1

fancyConfirm関数はコールバック関数を予期しています。指定されていない場合、fancybox イベントにエラーがあり、灰色onclosedのままである理由を説明できます。

呼び出しを次のように変更してみてください。

fancyConfirm("Are you sure you want to delete this record?", function(ret) { })
于 2010-12-28T15:23:34.133 に答える