处理事件时避免样板代码(Backbone,CoffeeScript)

时间:2013-03-25 19:36:56

标签: javascript backbone.js refactoring coffeescript

请考虑以下示例http://jsfiddle.net/YmWW2/

如何避免使用execFooexecBarexecBaz等冗余方法,并将"foo"之类的字符串直接传递给exec方法?

events:
    "click a#foo" : "execFoo"
    "click a#bar" : "execBar"
    "click a#baz" : "execBaz"

execFoo: -> @exec "foo"
execBar: -> @exec "bar"
execBaz: -> @exec "baz"

exec: (x) -> alert x

1 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您可以通过检查jquery传递给点击处理程序的event object来获取'foo','bar'信息。

例如,以下代码段应警告所有被点击的链接的id属性。

events:
  'click a' : 'exec'

exec: (event) ->
  clickedLink = $(event.target)
  alert(clickedLink.id())