2011-11-19 43 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