在JQuery UI模式中加载另一个页面(在JQuery UI模式中...)

时间:2011-08-08 10:59:51

标签: javascript jquery jquery-ui jquery-ui-dialog

我有一个JQuery UI模式:

$('#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 个答案:

答案 0 :(得分:1)

您是否尝试过关闭当前对话框并打开另一个对话框?

    $('#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)来引用到对话框。