javascript – jQuery绑定事件与Rails/Coffeescript?

所以在app / assets / javascript / faye.js.coffee.erb我有以下:

$('#room_tag').bind('blur', () ->
   alert('Hey!')
)

所有其他代码如:sendmessage(‘room’,’message’)工作正常.我可以复制并粘贴从上面的块生成的代码并将其粘贴到Chrome中,这样可以正常工作.我假设这是因为,它是rails还是coffeescript?,其中之一包装整个文件:

(function() {
  // your generated code here
}).call(this);

还有一种方法可以让我访问在那里定义的方法吗?是否可以定义一个方法,而不将其分配给一个变量?

最佳答案
1)在文档准备好之前,很可能你的.bind调用太早了,因此它没有做任何事情.在调用$(文档)中包装它,就像这样

    $(document).ready ->
      $('#room_tag').bind 'blur', ->
        alert 'Hey!'

而实际上这是一个可爱的快捷方式,因为jQuery的默认$function是$(document).ready的别名,你可以这么做:

$->
  $('#room_tag').bind 'blur', ->
    alert 'Hey!'

2)将所有内容都包含在自动执行的功能定义中.

3)如果要在coffeescript中创建一个全局函数,请将其显式分配为全局窗口对象的属性

    window.myFunc = (arg1) ->
      alert arg1

2)& 3)在CoffeeScript docs年明确解释

转载注明原文:javascript – jQuery绑定事件与Rails/Coffeescript? - 代码日志