2015-05-31 81 views
0

我正在使用jQueryUI可調整大小的小部件,並在頁面上有一堆可調整大小的框。當文檔加載時,我初始化小部件,如下所示:在jQuery中調整特定元素調整大小選項Resize

$('.ui-draggable').resizable({ 
    minHeight: 10, // 10 is actually the default 
    minWidth: 10, // 10 is actually the default 
    resize: function() { 
     showProperties(this); 
    }, 
}); 

但是,在某些時候,我只希望其中一些元素更改調整大小選項。我正在試圖做的是這樣的:

if (type == 'sometype') 
{ 
    console.log($('#'+elementID).resizable('option', 'handles')); 
    $('#'+elementID).resizable('option', 'handles', 'e,w'); 
    console.log($('#'+elementID).resizable('option', 'handles')); 
} 

這確實輸出:

e,s,se 
e,w 
在控制檯

,因此觸發事件和選擇是正確的,但是代碼實際上並不工作:事實上,手柄保持不變,即e,s,se。

這是因爲我使用原始init的不同選擇器?如果是這樣,我怎麼才能改變調整大小選項只在原始可調整大小的元素的子集?如果不是,那可能是什麼問題?

回答

1

Handles實際上是將div添加到應用了resizable的元素。看起來,更改選項不會刷新這些句柄。也許有辦法將更改應用於特定子集和刷新,但我不知道如何。 但是,一個快速的解決方法是隱藏您不想要的手柄,而不是更改handle選項。您必須將handle選項設置爲您需要的所有手柄,然後隱藏那些不需要的手柄。像這樣刪除se handle例如:

$('#'+elementID).find('.ui-resizable-se').hide(); 
+0

謝謝,它的工作!事實證明這是一個開放的bug:http://bugs.jqueryui.com/ticket/3423現在我保持打開的問題,以防有人讀取並修復它,但如果沒有這樣的事情發生,很快就會關閉它。 – Ynhockey

相關問題