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 回答