admin管理员组

文章数量:1317898

I have developed a large "single page application" using jQuery and jQuery UI. As I load various sections in the app it creates jQuery UI widgets like dialogs or date pickers. They tend to hang around and cause some issues when I reload certain sections. I would like the ability to call a function that destroys all jQuery UI widgets that have been loaded and remove them from the DOM. Any solution to catch all of them? Thanks!

I have developed a large "single page application" using jQuery and jQuery UI. As I load various sections in the app it creates jQuery UI widgets like dialogs or date pickers. They tend to hang around and cause some issues when I reload certain sections. I would like the ability to call a function that destroys all jQuery UI widgets that have been loaded and remove them from the DOM. Any solution to catch all of them? Thanks!

Share Improve this question asked Oct 25, 2012 at 5:33 JeremyJeremy 1,0734 gold badges18 silver badges34 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 7

In theory, it's easy enough to locate and destroy all widgets of a specific type on a page:

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

So, it isn't unthinkable to create a loop around an array of widget types you know you're using, and delete every kind of widget on the list.

Use remove() or detach() to clear the contents of your jquery UI widgets and here is the difference

remove() removes the matched elements from the DOM pletely.

detach() is like remove(), but keeps the stored data and events associated with the matched elements.

本文标签: javascriptHow do I destroy all jQuery UI widgetsStack Overflow