@pozadi Имхо, с `$.Callbacks` тупее получается.

```coffee
on: (name, fn) ->
  @__events ||= {}
  cbs = @__events[name] ||= $.Callbacks()
  cbs.add(fn)
  this

once: (name, fn) ->
  once = ->
    @off name, once
    fn.apply(this, arguments)
  @on name, once
  this

off: (name, fn) ->
  unless @__events? && (name? || fn?)
    @__events = {}
    return this

  if name?
    if fn?
      @__events[name]?.remove(fn)
    else
      @__events[name]?.empty()
  else
    for own _, cbs of @__events
      cbs.remove(fn)
  this

trigger: (name, args...) ->
  @__events?[name]?.fireWith(this, args)
  this
```