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

Avoiding boilerplate code when handling events (Backbone, CoffeeScript)

本文关键字:Backbone CoffeeScript 代码 处理事件      更新时间:2023-09-26

考虑下面的例子http://jsfiddle.net/YmWW2/。

如何避免多余的方法,如execFoo, execBar, execBaz和传递字符串,如"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

如果我正确理解了你的问题,你可以通过检查jquery传递给点击处理程序的事件对象来获得'foo', 'bar'信息。

例如,下面的代码片段应该提醒被点击的任何链接的id属性。
events:
  'click a' : 'exec'
exec: (event) ->
  clickedLink = $(event.target)
  alert(clickedLink.id())