Расчесывание диалога jquery и jGrowl - PullRequest
0 голосов
/ 20 февраля 2011

У меня есть страница, которая подтверждает действие с помощью диалогового окна 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 Ответ

1 голос
/ 20 февраля 2011

Вы можете использовать событие beforeClose от jGrowl в сочетании с таймером.

$.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" );
        }
    }


});
...