javascriptjqueryajaxjquery-uijquery-ui-widget

How do I destroy all jQuery UI widgets?


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!


Solution

  • 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.