【问题标题】:Why coffeescript doesn't work when the page jump to a new one in ROR为什么当页面跳转到 ROR 中的新页面时,coffeescript 不起作用
【发布时间】:2013-09-13 15:39:55
【问题描述】:

我的 xxx.js.coffee 的内容:

$->
  $("#clk").click ->
    alert "hello world"

  $("#clk1").click ->
    alert "hello"

id "clk" 在 index.html.erb 中,而 "clk1" 在 show.html.erb 中

当我在“index.html.erb”时,咖啡可以工作,但是当我跳到“show.html.erb”时,它不会提醒任何东西。

我该如何解决?

【问题讨论】:

标签: coffeescript ruby-on-rails-4


【解决方案1】:

当您编写$ -> 时,您可能已经知道您是在告诉jQuery 在DOMContentLoaded 或类似事件上运行该函数。不幸的是,Rails 的更高版本默认启用了一个称为 turbolinks 的功能。此功能通过告诉浏览器在您单击新链接时不要重新加载页面,而是通过 ajax 获取新页面并用它替换当前正文来加速您的页面。

缺点是页面不会重新加载,并且当显示show.html.erb 时,您的“#clk1”处理程序注册将不会再次运行。正如 mu 已经在 cmets 中指出的那样,请查看此问题的答案以了解要使用的正确事件:

JQuery in Rails is failing after linking from another page, works on page load

就个人而言,我对任何新的 Rails 4 项目做的第一件事就是删除 turbolinks。我认为它带来的问题多于解决的问题。只需从您的 Gemfile 中删除 gem 'turbolinks' 行。

【讨论】:

  • 附带说明,这与 CoffeeScript 完全无关。
  • 感谢您的帮助!很有用~^-^
  • 非常感谢,在这个问题上我的头撞墙了几个小时
猜你喜欢
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
相关资源
最近更新 更多