2012-05-22 35 views
3

我有一个可调整大小的容器div。在那个div里面还有另一个可调整大小的div。 如果我销毁了容器div的resize处理程序,那么内部div的resize处理程序也会被销毁。就像这样:删除特定的调整大小处理程序jQuery

$(".container").resizable("destroy");

有没有办法破坏容器的大小调整处理,但保留调整大小处理集装箱内的股利?

+1

我认为你只能通过编辑jQuery UI源代码来做到这一点..实际上它看起来像一个bug,因为你甚至无法通过删除调整大小处理程序来删除resize处理程序到内部div的外部股利[检查出来](http://jsfiddle.net/D92vA/)我会说报告[这里](http://bugs.jqueryui.com/report/10?P=resizable)并等待对于下一个版本的jQuery UI – noob

回答

2

这似乎是jQuery UI源中的一个错误。父容器上的“销毁”调用是从目标容器对象和所有包含的元素中移除ui可调整大小的句柄。

问题的根源在于198行的jquery.ui.resizable.js中的销毁函数(如JQuery UI v1.8.20)。

注意,它被调用:

.find('.ui-resizable-handle').remove(); 

这应改为改为:

.children('.ui-resizable-handle').remove(); 

更改此调用将阻止用户界面调整大小的把手从你内心的div被删除。

希望有帮助!

+0

好的,谢谢。不幸的是我使用谷歌链接的jquery文件... – user1121487

+1

我报告了这个问题。希望它能尽快为您解决。以下是对错误报告的参考:[link](http://bugs.jqueryui.com/ticket/8344) – christurnerio

+1

提交拉取请求。 [链接](https://github.com/jquery/jquery-ui/pull/661) – christurnerio