0

jqueryダイアログを使用してアクションを確認するページがあり、アクションが実行された後、コードはダイアログの終了を開始し、ポータルに戻ります。私のバックエンドは行われたアクションを処理しますが、 jGrowlの目立たない通知を使用して、アクションが失敗したことをユーザーに通知したいと思います。ただし、次のコードを使用すると、jGrowl が実行されず、ダイアログ ボックスが閉じた後に表示されませんでした。(私のインポートはこの段階で既に完了しています) コードはどこに配置すればよいですか?

    $("#pop").click(function(){
        $( "#dialog-confirm" ).dialog( "open" );
        return false;
    });

    $( "#dialog-confirm" ).dialog({         
        autoOpen: false,
        resizable: false,
        height:200,

        modal: true,
        buttons: {
            "Drop": function() {
                //ajax
                var checkbox = $("#repost").val();

                $( this ).dialog( "close" );
                $.jGrowl('ACTION SUCCESSFUL!');

            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        }


    });
4

1 に答える 1

1

jGrowl の beforeClose イベントをタイマーと組み合わせて使用​​できます。

$.jGrowl('ACTION SUCCESSFUL!', { 
    life: 1000, 
    beforeClose: function(e,m) {
    $( "#dialog-confirm" ).dialog( "close" );
        }
});

jGrowl の通知は 1000 ミリ秒続き、その後ダイアログを閉じる必要があります。私はそれをテストしていませんが、動作するはずです。

更新: DROP イベントでダイアログを閉じてはならないことに言及するのを忘れていました。次のようになります。

$("#pop").click(function(){
    $( "#dialog-confirm" ).dialog( "open" );
    return false;
});

$( "#dialog-confirm" ).dialog({         
    autoOpen: false,
    resizable: false,
    height:200,

    modal: true,
    buttons: {
        "Drop": function() {
            //ajax
            var checkbox = $("#repost").val();

            // $( this ).dialog( "close" );
    $.jGrowl('ACTION SUCCESSFUL!', { 
        life: 1000, 
        beforeClose: function(e,m) {
        $( "#dialog-confirm" ).dialog( "close" );
            }
    });

        },
        Cancel: function() {
            $( this ).dialog( "close" );
        }
    }


});
于 2011-02-20T11:47:46.300 に答える