【发布时间】:2011-12-27 23:59:05
【问题描述】:
我是 Coffeescript 的新手,想在 jquery 1.6.4 中使用 delegate() 方法。方法签名是.delegate( selector, eventType, handler )。如何在 Coffeescript 中调用此方法?我正在使用 Rails 3.1。
谢谢, 丹妮。
【问题讨论】:
标签: jquery coffeescript
我是 Coffeescript 的新手,想在 jquery 1.6.4 中使用 delegate() 方法。方法签名是.delegate( selector, eventType, handler )。如何在 Coffeescript 中调用此方法?我正在使用 Rails 3.1。
谢谢, 丹妮。
【问题讨论】:
标签: jquery coffeescript
就像咖啡脚本中的任何其他方法一样?
($ 'body').delegate '.external.link', 'click', (evt) ->
# handler body
我觉得我错过了关于你的问题的一些东西......
【讨论】:
$ 'body' 是一个咖啡脚本表达式,就像 javascript 中的 $('body') 一样。 cs 中的 $ 'body'.delegate 与 js 中的 $('body').delegate 是 unlike 的,括号在两种语言中都重置运算符优先级。 cs 中的 ($ 'body').delegate 就像 js 中的 ($('body')).delegate。
回答您的 2 个处理程序问题:
$('body').hover ->
# handler 1
console.log 'in'
, ->
# handler 2
console.log 'out'
http://js2coffee.org/ 是一个很好的后台网站,如果你在没有自动编译器的情况下编写咖啡脚本,可以让你立即检查生成的 javascript。
【讨论】:
这纯粹是美学问题,但我更喜欢将我的处理程序包装在命名函数中(如果有多个):
over = => ...
out = => ...
$el.hover over, out
它对我来说似乎更干净。
【讨论】:
我可能很密集,但上面的正确答案花了我一些时间才弄清楚。 第一个参数是 div 还是 ?要监视新元素,则需要提供元素标识符,然后是事件类型
$('#forum-senate-admin-lists').delegate 'input[id=delete-forum-object]','click', (evt) ->
deleteForumObject($(this))`
【讨论】: