2011-11-19 83 views
0

我遇到了jQuery UI的Resizable中的一个错误,试图将它与jQuery UI的对话框一起使用,它在给定选择器或DOM元素时并不尊重containment选项,并且在调整大小时通常表现得非常怪异。jQuery可调整大小的错误

基本上,我这样做:

​​

所以,我需要另一种方式来调整大小做遏制。

有没有一种方法可以模拟遏制,也许可以通过调用resizable调用resize回调?在哪里我可以检查一下div在调整大小时是否会太大,并将其强制为可接受的大小?

+0

发布您的代码和行为也;也许我们可以弄清楚为什么它会给你带来意想不到的结果。 –

+0

@JonathanM我正在研究一个能够再现问题的最小样本,但是我的网页已经非常庞大,需要一段时间才能找出造成不良行为的环境。与此同时,你是否直接回答这个问题? –

+0

@JonathanM我添加了一些信息,看看是否有帮助,仍然在做一个例子... –

回答

0

以我的经验,你不能只在对话框对象本身上调用.draggable()

它也不能帮助jQueryUI将每个对话元素都归入<body>标记。

试试这个:

// create the dialog 
var w = $('<div>'); 
... 
$(w).dialog(dlg_options); 

// reparent the dialog, and reset the draggable options 
var dlg = $(w).data('dialog').uiDialog; 
$(dlg).appendTo(real_parent); 
$(dlg).draggable(drag_options); 

注意,这个采用隐藏式jQueryUI的内部(.uiDialog)在未来的版本中可能突破的。

+0

对不起,我不小心遗漏了'resizable(options)'调用,这是麻烦的地方,而不是'可拖动'。 –

+0

@SethCarnegie同样适用 - 使用'。(dlg).resizable()'使用'.uiDialog'数据成员如上。 – Alnitak

+0

或可能'$(dlg).data()。resizable' – Alnitak