【问题标题】:jQuery not executing when navigating within rails app在rails应用程序中导航时jQuery未执行
【发布时间】:2013-10-03 05:29:19
【问题描述】:

我在一个 Rails 应用程序中有 jQuery/Coffeescript,它在第一次导航到 root_path 和/或重新加载页面时成功运行,但是,如果我使用主页上的链接导航到另一个页面,然后导航回主页,jQuery(应在页面完成加载时运行)不运行。为什么是这样?我怎样才能让它在每次点击页面时运行?谢谢!

'/home.js.coffee'

jQuery ->
  myFunction ->

$('#my_div').click myFunction

注意:我使用的是 Ruby 2 和 Rails 4

application.js

//= require jquery
//= require jquery_ujs
//= require jquery.turbolinks    <- including this line gives me an error "Sprockets::FileNotFound"
//= require turbolinks
//= require bootstrap
//= require_tree .

【问题讨论】:

  • 你是如何连接到页面加载事件的?你能发布jquery代码吗
  • 添加了一些代码来展示我如何使用该函数
  • 那么,问题是你下次点击主页时'click'没有绑定?
  • 我不确定,但这是有道理的。我认为它与 Turbolinks 有关,但是当我将 github.com/kossnocorp/jquery.turbolinks 添加到我的 application.js(和我的 gemfile)中时,我一直收到一条错误消息“Sprockets::FileNotFound”。我将在上面添加我的 application.js 文件。

标签: jquery ruby-on-rails coffeescript ruby-on-rails-4 turbolinks


【解决方案1】:

这应该会修复您的咖啡脚本文件:

myFunction = ->
  # this is what the function does.

$ -> # this gets called when the DOM is ready (thanks to jquery.turbolinks gem)
  $('#my_div').click myFunction

【讨论】:

    猜你喜欢
    • 2014-01-08
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2016-09-04
    相关资源
    最近更新 更多