如何在不破坏儿童可resize的情况下销毁可resize的jquery?

我有一个可resize的父div(仅限宽度) – 在这个div中我有许多其他div也是可resize的(仅限高度)。

有时我想要禁用或破坏父宽度resize,但保持内部高度resize。

当我调用$("#idTopDiv").resizable("destroy"); ,这也破坏了所有儿童div的可resize。

典型布局是: –

 

欣赏任何想法。

我认为这是因为resizable的破坏会删除ui元素内部的所有resize handels,这恰好包括内部可resize的resize句柄。 所以内部可resize实际上并没有被破坏,他们只是搞砸了。

你可以在这里看到Resizable源代码; 它发生在第199行,它说.find('.ui-resizable-handle').remove();

要解决此问题,您还需要在内部resizable上调用destroy方法,然后重新创建它们。 ( jsfiddle )

 $("div").resizable(); // Destroy all three resizables $("div").resizable("destroy"); // Recreate the inner resizables $("#idInnerOne, #idInnerTwo").resizable(); 

您需要这样做以删除在创建时可resize的绑定和数据,否则当您尝试重新创建它时它会认为它已经创建,并且它将不执行任何操作。

您也可以考虑禁用外部resizable而不是销毁它,但这有其自身的问题 。