如何销毁所有的jQuery UI小部件?

3

我使用 jQuery 和 jQuery UI 开发了一个大型的“单页应用程序”。随着我加载应用程序中的各个部分,它会创建像对话框或日期选择器这样的 jQuery UI 小部件。当我重新加载某些部分时,它们往往会挂起并引起一些问题。我希望能够调用一个函数,销毁所有已加载的 jQuery UI 小部件,并将它们从 DOM 中删除。有什么解决方案可以捕获所有小部件吗?谢谢!

2个回答

7

理论上,在页面上定位并销毁所有特定类型的小部件是很容易的:

$(":ui-draggable").draggable("destroy");

因此,围绕你知道使用的小部件类型创建一个循环,并删除列表中的每种小部件并不是不可想象的。


2
使用remove()detach()来清除jquery UI小部件的内容,以下是它们之间的区别: remove()会完全从DOM中删除匹配的元素。 detach()类似于remove(),但保留与匹配元素相关联的存储数据和事件。

你正在调用remove()或detach()函数来移除小部件,但这是否会释放小部件内部使用的所有内存,还是会导致内存泄漏?- 从DOM中删除某些内容,但不释放其资源。 - Ognyan Dimitrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接