Можно ли вешать оброботку событий не на DOM элемент?
Де-факто стандарт EventEmitter (в браузере отдельной либой).
Да, нужно реализовывать самостоятельно.
Или воспользоваться готовым решением, например, backbone.js