coffeescript-页面加载后运行

coffeescript-页面加载后运行,coffeescript,Coffeescript,我对CoffeScript非常陌生,想编辑我找到的一些代码。现在,它在加载DOM时立即运行此函数: jQuery -> $('#s3-uploader').S3Uploader 如何重写它,使其仅在加载页面后运行?我需要等待,以便获得正确的实例变量: (on page load) -> $('#s3-uploader').S3Uploader additional_data: {project_id: @project.id, step_id: @step.

我对CoffeScript非常陌生,想编辑我找到的一些代码。现在,它在加载DOM时立即运行此函数:

jQuery ->   
 $('#s3-uploader').S3Uploader
如何重写它,使其仅在加载页面后运行?我需要等待,以便获得正确的实例变量:

(on page load) ->   
 $('#s3-uploader').S3Uploader
    additional_data: {project_id: @project.id, step_id: @step.id, user_id: current_user.id} 
您正在查找
$(document).ready
事件处理程序

$(document).ready ->
  $('#s3-uploader').S3Uploader

这是一个老生常谈的问题,毫无疑问你已经找到了解决办法。但是为了所有从谷歌来到这里的人的利益

您的问题也不是100%清楚,但您似乎正在使用RubyonRails之类的框架

如果是这样,那么正确的答案当然是您不应该从Coffeescript访问实例变量。资产管道中的Coffeescript文件是在部署期间编译的,不知道控制器或实例变量

正确的方法是将这些变量分配给DOM中的数据属性,然后引用这些数据属性

#view.html.erb
<div id="uploader" data-project_id="<%= @project.id %>" ></div>

#script.coffee.js
(on page load) ->   
 $('#s3-uploader').S3Uploader
    additional_data: {project_id: $('#uploader').data('project_id') .... }
#view.html.erb
#script.coffee.js
(页面加载时)->
$(“#s3上传器”).s3上传器
其他_数据:{project_id:$('#uploader')。数据('project_id')…}

对于rails,这对我来说是有效的,而这里的所有其他答案都没有:

$(document).on "turbolinks:load", ->

我认为这是不对的…我需要在加载实例变量之后运行,所以在加载DOM时不能这样。我尝试了$(window).load()->但这也不起作用。叮叮,我想我们赢了
$(document).on "turbolinks:load", ->