It's a common problem that jQuery widgets inside ASP UpdatePanels need to reinitialized after an ajax request, however my issue is that events are not unbound prior to replacing the HTML inside the UpdatePanel. jQuery takes care of this problem for you whenever you call .html("...") or .remove(), but the UpdatePanel doesn't utilize jQuery.
I have popup elements (inside of the UpdatePanel), which need to be hidden when the user clicks outside of them so I made a jQuery Special Event for detecting when this happens however the Teardown function is never called after the Ajax request. So over time there are more and more event handlers on elements which are no longer attached to the document.
I could have my widget initialization function (which gets ran after every Ajax request), check for detached elements and unbind their events but I'm afraid that could cause other issues down the road.