Opened 7 years ago

Closed 7 years ago

#5005 closed bug (fixed)

Widget factory does not clean up event bindings

Reported by: scottgonzalez Owned by: scottgonzalez
Priority: blocker Milestone: 1.8
Component: ui.core Version: 1.7.2
Keywords: Cc:
Blocked by: Blocking:


The base widget binds three event handlers, but does not unbind them on destroy. See jquery-ui-dev thread.

Change History (4)

comment:1 Changed 7 years ago by thetoolman

Thank you Scott for reporting; here is my current workaround:

destroy: function() {


$.widget.prototype.destroy.apply(this, arguments); default destroy

see ticket; code fixes <= 1.7.2 ; expect bug will be fixed in 1.7.3 if($.ui.version <= "1.7.2") {

this.element.unbind("setData." + widgetName); this.element.unbind("getData." + widgetName); this.element.unbind("remove." + widgetName); will remove all events sorry, might have other side effects? this.element.unbind("remove");



comment:2 Changed 7 years ago by thetoolman

The fix should be as easy as adding these lines to the widget destroy method (approx line 300 in ui.core.js):

this.element.unbind("setData." + name); 
this.element.unbind("getData." + name);
this.element.unbind("remove."  + name);

comment:3 Changed 7 years ago by scottgonzalez

  • Owner set to scott.gonzalez
  • Status changed from new to accepted

Fixed in new widget factory in dev branch in r3544.

comment:4 Changed 7 years ago by scottgonzalez

  • Resolution set to fixed
  • Status changed from accepted to closed

Fixed in trunk in r3621 with merge.

Note: See TracTickets for help on using tickets.