Rails 4:部分渲染后无法使用javascript(使用ajax)

时间:2014-03-26 23:56:58

标签: javascript jquery ruby-on-rails ajax coffeescript

我正在使用CoffeeScript执行Ajax请求,然后从我的控制器渲染部分,但之后部分已经呈现,它无法使用我以前的Javascript。

示例:

最后我的home_controller我的行动是:

respond_to do |format|
   format.html { render partial: 'frame' }
end

在我的home.js.coffee

$('#plouf').click -> 
  alert('test')

然后在我的部分_frame.html.erb(在views文件夹的主文件夹中)

<span id="plouf">test<span>

如果我点击这个范围,没有任何反应......

<%= javascript_include_tag "application", "data-turbolinks-track" => true %>

但是如果我在我的部分中添加这一行就可以了,但我知道它很难看,因为我已经在application.html.erb

中做了

我错过了什么,或者部分不能使用任何以前的Javascript是正常的吗?

1 个答案:

答案 0 :(得分:7)

在浏览器运行javascript之前,将部分内容编译到视图中。

您需要的是

$(document).on 'click', '#plouf', ->
  alert('test')

这会将事件绑定到文档,因此当turbolinks或ajax重新加载HTML时,您的事件处理程序仍处于活动状态。