使用jQuery UI对话框。jQuery UI对话框/拖动问题
很好用,但是当前,当我拖动一个对话框时,它不会移出屏幕(整个对话框总是在视口中)。
有没有办法设置对话框,以便我可以将它部分拖出屏幕?
使用jQuery UI对话框。jQuery UI对话框/拖动问题
很好用,但是当前,当我拖动一个对话框时,它不会移出屏幕(整个对话框总是在视口中)。
有没有办法设置对话框,以便我可以将它部分拖出屏幕?
当然,你可以,如果你扩展了jQuery的对话框代码就包括此代码:
$.ui.dialog.prototype._makeDraggable = function() {
this.uiDialog.draggable({
containment: false
});
};
这将重写“文档的默认遏制值'与false
禁用遏制。
谢谢 - 我会修补这个,看看我能想出什么。 – OneNerd
我正在尝试实施此修复程序,但目前还没有运气。我将它加载到docready外部的script.js文件中。 (在docready中也没有工作)。 这看起来像一个全球变化。我是否需要以某种方式将其与每个对话框相关联? – CoryDorning
无视...正常工作。 – CoryDorning
玩选项,位置。编写您自己的JavaScript调用来移动框。
$('#dialog').dialog('option','position',[500, 100]);
,但你不能移动的方块缩小视图端口的,如果你想拥有这样的特征,写自己,延长了jQuery UI的对话框,(更新代码块,它检查的有效位置(有效的,如果位置x,y是在视口中)
我有这个相同的问题,并打算使用betamax's solution,但注意到它有效地取代了一些jQuery UI的内置功能。所以不是我适应的办法,以保持内置功能,而且还通过覆盖_makeDraggable
而不是把遏制关闭只是彻底取代它:
if (!$.ui.dialog.prototype._makeDraggableBase) {
$.ui.dialog.prototype._makeDraggableBase = $.ui.dialog.prototype._makeDraggable;
$.ui.dialog.prototype._makeDraggable = function() {
this._makeDraggableBase();
this.uiDialog.draggable("option", "containment", false);
};
}
或者你可以在一个更简单,更“jQuery的方式”做到了; )
$(document).ready(function(){ $('#dialog'). dialog({ //your dialog options go here }). dialog("widget").draggable("option","containment","none"); //this chained sequence kills containment });
你是男人! 我需要将一个对话框限制为一个特定的div(将“none”改为“#mydiv”)。这是解决方案。 –
感谢... +1为“更多jQuery方式”。 – Aries
为什么你想部分移动屏幕? –
@ViswanathanIyer:有时你需要稍稍移动它才能看到它下面的东西。我相信还有其他原因,但问题是**如何?**,而不是为什么。 –
@ViswanathanIyer:他们掩盖了主要区域,但包含了对该区域进行更改的工具,因此用户可以调出对话框,进行一些调整,然后将其拖出来以查看更改。现在,他们需要关闭它,然后重新打开它。 – OneNerd