Загрузите другую страницу в модальном интерфейсе JQuery (из модального интерфейса JQuery ...) - PullRequest
2 голосов
/ 08 августа 2011

У меня есть модальный интерфейс JQuery:

$('#avatar-manager').click(function () {
                $('#dialog').dialog('open');
                return false;
            });

            $('#dialog').dialog({
                autoOpen: false,
                resizeable: false,
                modal: true,
                position: 'center',
                width: 600,
                open: function () {
                    $(this).load('/a/path/to/my/page.aspx');
                }
            });

И это прекрасно работает. page.aspx (пример имени) содержит мои функции загрузки изображений. Что я хотел бы сделать, это завершить загрузку, чтобы перенаправить пользователя на другой мод:

uploader.bind('FileUploaded', function (up, file, obj) {
            alert("I've done uploading stuff...");
            //redirect to another modal here...
        });

Я знаю, что не могу использовать windows.location и т.п., потому что это изменит главное родительское окно, поэтому я не уверен, как - или даже если смогу - сделать это ...

1 Ответ

1 голос
/ 09 августа 2011

Вы пытались просто закрыть текущий диалог и открыть другой?

    $('#dialog2').dialog({
        autoOpen: false;
        modal: true
    });

    uploader.bind('FileUploaded', function (up, file, obj) {
        $('#dialog').dialog('close');
        $('#dialog2').html('Upload finished').dialog('open');
    });

Редактировать

Вы можете обратиться к диалогу несколькими способами в зависимости от того, как вы хотите это сделать. Если вы хотите абсолютную ссылку, просто используйте $('#dialog'); если вы хотите относительную ссылку, вы можете использовать $.proxy(), apply() или call() для передачи в диалоге в качестве замещающего контекста , так что вы можете использовать $(this) для обращения к диалоговому окну.

...