我正在使用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文件夹的home文件夹中)
<span id="plouf">test<span>
如果单击此跨度,则什么也不会发生...
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
但是,如果我将这一行添加到我的部分代码中,它可以工作,但是我知道这很丑陋,因为我已经在我的代码中做了 application.html.erb
我是否缺少某些东西,或者部分不能使用任何以前的Java语言正常吗?
在浏览器运行javascript之前,会将部分代码编译到视图中。
您需要的是
$(document).on 'click', '#plouf', ->
alert('test')
这会将事件绑定到文档,因此,当turbolinks或ajax重新加载HTML时,事件处理程序仍处于活动状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句