微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在使用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是正常的吗?

解决方法

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

你需要的是什么

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐