Skip to content

Instantly share code, notes, and snippets.

@hamiltop
Created April 5, 2012 15:44
Show Gist options
  • Save hamiltop/2312041 to your computer and use it in GitHub Desktop.
Save hamiltop/2312041 to your computer and use it in GitHub Desktop.
Raphael and Backbone events
class Backbone.RaphaelView extends Backbone.View
delegateRaphaelEvents: (elements)->
for name,element of elements
@delegateRaphaelElementEvents name, element
delegateRaphaelElementEvents: (name, element) ->
events = [
"mouseup"
"mousedown"
"mousemove"
"mouseover"
"mouseout"
"click"
"dblclick"
"touchcancel"
"touchend"
"touchmove"
"touchstart"
]
for event in events
element[event] (e) =>
@.$el.trigger "raphael:#{name}:#{e.type}", e
class Box extends Backbone.RaphaelView
initialize: ->
@paper = Raphael 10, 50, 320, 200
@box1 = @paper.rect 10, 10, 25, 25
@box2 = @paper.rect 50, 10, 25, 25
@circle = @paper.rect 50, 50, 40
@delegateRaphaelEvents
box1: @box1
box2: @box2
circle: @circle
events: ->
"raphael:box1:click" : "hello"
"raphael:box2:click" : "goodbye"
"raphael:circle:mouseover" : "foo"
hello: (j_event, r_event) ->
alert "Hello"
goodbye: (j_event, r_event) ->
alert "Goodbye"
foo: (j_event, r_event) ->
console.log "mouseover event"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment