This ticket doesn't help, and the samples there do not work for me. I can't quite seem to get jQuery's delegate to work properly.
Here is the JSFiddle which does not dynamically declare events correctly. How do I do this?
What's happening in the fiddle?
The override for dynamic events:
Backbone.View::addEvents = (events) ->
  @delegateEvents _.extend(_.clone(@events), events)  
A class to aggregate the DOM selectors/events, so we only declare their HTML counterparts once:
class Els
  constructor: () ->
    @signupButton = 'button#signup'
  events: () ->
    events = { }
    events['click ' + @signupButton] =  'clickSignup'
    events
A class to handle DOM manipulation:
class UI extends Backbone.Model
  disableButton: () ->
    $(els.signupButton).addClass('disabled') 
Marionette views:
class MyRegion extends Backbone.Marionette.Region
  el: '#default-region'
class MyLayout extends Backbone.Marionette.Layout
  template: '#template-layout'
  regions:
    content: '#region-content'
  #events:
    #'click button#signup': 'clickSignup'
  initialize: (options) ->
    # This seems correct
    alert JSON.stringify(options.dynamicEvents)
    # FAIL!
    @addEvents options.dynamicEvents
  close: () ->
    @remove()
    @unbind()  
  clickSignup: (event) ->
    ui.disableButton()
App start:
els = new Els()
ui = new UI()
app = new Backbone.Marionette.Application()
app.start { }   
region = new MyRegion()
region.show new MyLayout(
  dynamicEvents: els.events()
)
It would be cool if I could also declare the event bindings within Els, e.g.:
class Els
  constructor: () ->
    @signupButton = 'button#signup'
  events: () ->
    events = { }
    events['click ' + @signupButton] =  (event) ->
      ui.disableButton()
    events
I really should use the EventEmitter, but the examples assume everything is instantiated.