Skip to content

Instantly share code, notes, and snippets.

@dncrht
Created December 28, 2013 11:42
Show Gist options
  • Save dncrht/8158573 to your computer and use it in GitHub Desktop.
Save dncrht/8158573 to your computer and use it in GitHub Desktop.
WHAT IS THIS A very simple way to organize page events so they are not scattered through the javascript code. Inspired by backbone.js views. WHY This way all the events your page listens are declared in one obvious place. HOW TO USE IT Create a View class that inherits from AbstractView. This class should define: - an ''event'' property, with al…
class @AbstractView
constructor: ->
console.log "I'm not meant to be instantitated"
render: ->
for event_selector of @events
event_selector_array = event_selector.split(' ')
event = event_selector_array.reverse().pop()
selector = event_selector_array.reverse().join(' ')
if selector == 'document'
$selector = $(document)
else if selector == 'window'
$selector = $(window)
else
$selector = $(selector)
callback = eval('this.' + @events[event_selector]).bind(@)
$selector.on(event, callback)
$(document).ready ->
view = new View
view.render()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment