我可以强制只在窗口内拖动对话框吗?

时间:2013-01-03 09:57:19

标签: javascript jquery css jquery-ui dialog

HTML:

    <div id="dialog" title="Past Issues">
    </div>

Jquery的:

$( "#dialog" ).dialog({
        height: 900,
        width:1200,
        modal: true,
});
问题是目前对话框可以拖动到几个厘米的窗口区域,是否可以设置收容窗口?或者默认设置已经是包含:窗口?如果是,问题的根本原因是什么?感谢。

2 个答案:

答案 0 :(得分:2)

传递给对话框使用的可拖动窗口小部件的默认containment选项确实是document,而不是window

您可以使用data()获取对话框小部件,然后访问其uiDialog成员并在那里修改可拖动的containment选项来覆盖此默认值:

$("#dialog").dialog({
    height: 900,
    width: 1200,
    modal: true
}).data("ui-dialog").uiDialog.draggable("option", "containment", "window");

答案 1 :(得分:1)

试试这个,为了演示,我使用了div,您可以将其替换为window

$("#dialog").dialog({
    open: function(event, ui) {
        var vDlg = $(event.target).parent();
        var vCont = $('#main');   // for window use - $(window);
        vDlg.draggable("option", "containment", vCont).appendTo(vCont);
        $(this).dialog("option", "position", "center");
    }
});​

DEMO HERE