9

我有一个可调整大小(仅宽度)的父 div - 在此 div 中,我有许多其他 div 也可调整大小(仅高度)。

有时我想禁用或破坏父宽度调整大小,但将内部高度调整大小保留在适当的位置。

当我打电话时$("#idTopDiv").resizable("destroy");,这也会破坏所有子 div 上的可调整大小。

典型的布局是:-

<div id=idDivTop> <!-- Resizable width -->
    <div id=idInnerOne>
    </div>

    <div id=idInnerTwo> <!-- Resizable height -->
    <div>
</div>

欣赏任何想法。

4

1 回答 1

6

我认为发生这种情况是因为 resizable 的破坏会删除 ui 元素内的所有调整大小的句柄,这恰好包括内部可调整大小的调整大小句柄。所以内部可调整大小实际上并没有被破坏,它们只是被搞砸了。

您可以在此处查看 Resizable 源代码;它发生在它所说的第 199 行.find('.ui-resizable-handle').remove();

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

$("div").resizable();

// Destroy all three resizables
$("div").resizable("destroy");

// Recreate the inner resizables
$("#idInnerOne, #idInnerTwo").resizable();

您需要这样做以删除可调整大小在创建时设置的绑定和数据,否则当您尝试重新创建它时它会认为它已经创建并且它什么都不做。

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

于 2012-05-05T23:08:03.687 回答