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

HTML:

jQuery的:

 $( "#dialog" ).dialog({ height: 900, width:1200, modal: true, }); 

问题是目前对话框可以拖动到几个厘米的窗口区域,是否有可能设置收容窗口? 或者默认设置已经是包含:窗口? 如果是,问题的根本原因是什么? 谢谢。

试试这个,为了演示,我使用了一个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"); } });​ 

在这里演示

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

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

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