bergie/hallo

"halloactivated" event handler isn't unhooked on destroy()

Opened this issue · 0 comments

In hallo's _create method, there's a one-time event handler wired up to "halloactivated":

@element.one 'halloactivated', =>
   # We will populate the toolbar the first time this
   # editable is activated. This will make multiple
   # Hallo instances on same page load much faster
   @_prepareToolbar()

If you destroy the widget before it's been activated and then reinitialise it with a different set of plugins you get an error when the widget is first activated thrown from the handler whose set of plugins no longer matches`:

$(myElement).hallo({ plugins: { halloformat: {} });
$(myElement).hallo('destroy');
$(myElement).hallo({ plugins: { hallolists: {} });
$(myElement).click();
// Uncaught Error: Plugin halloformat not found

I'm just manually calling $(myElement).off('halloactivated') as a workaround for now.