梳理jquery对话框& jGrowl

时间:2011-02-20 10:26:28

标签: jquery dialog jgrowl

我有一个使用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" );
            }
        }


    });

1 个答案:

答案 0 :(得分: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" );
        }
    }


});