Rails 中的 JQuery 在从另一个页面链接后失败,但在页面加载时工作

2023-12-11

我在主页上使用了一个报价旋转器。当我直接从浏览器加载页面(在浏览器中输入地址并按回车键)时,它工作正常。但是,如果我单击指向我网站中另一个页面的链接,然后链接回主页,它就会停止工作。更具体地说,引号开始重叠,几乎就像该方法的两个实例正在运行一样。

我认为这可能是 javascript 加载方式的问题。由于我在网站的另一个页面上有一个选项卡脚本,它可以正常加载,但如果我链接离开并返回到该页面,它就不再起作用了......

在控制台中没有收到任何错误。

我在 Ubuntu 12 上运行 Rails 4、Ruby 2.0.0、Foundation,并使用 WebBrick 进行测试。 Gemfile 发布如下:

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.0'

# Use mysql as the database for Active Record
gem 'mysql2'

# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.0'


# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'

# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'

# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
#gem 'nokogiri' '~> 1.5.10'
# Use jquery as the JavaScript library
gem 'jquery-rails'

gem 'activerecord-session_store', github: 'rails/activerecord-session_store'

gem 'activemerchant'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'

gem 'ransack'

gem 'xml-simple'

# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'

gem 'zurb-foundation'

group :doc do
  # bundle exec rake doc:rails generates the API under doc/api.
  gem 'sdoc', require: false
end

# Use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
 gem 'capistrano', group: :development

# Use debugger
# gem 'debugger', group: [:development, :test]

Script:

    function rotateQuotes() {
            var oCurQuote = $('#quotes div.current');
            var oNxtQuote = oCurQuote.next();
            if (oNxtQuote.length == 0)
                oNxtQuote = $('#quotes div:first');

            oCurQuote.removeClass('current').addClass('previous');
            oNxtQuote.css({ opacity: 0.0 }).addClass('current').animate({ opacity: 1.0 }, {duration: 4500},
                function() {
                    oCurQuote.removeClass('previous');});
                    oCurQuote.animate({opacity: 0.0}, {duration: 500});

    }; 

$(function(){

                setInterval(rotateQuotes, 5000);
            });

应用程序.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

我猜这与 Turbolinks 相关。来自精美手册:

Events

使用 Turbolinks,页面无需完全重新加载即可更改,因此您不能依赖DOMContentLoaded or jQuery.ready()触发您的代码。相反,Turbolinks 会触发事件document提供页面生命周期的挂钩。

AFAIK,Rails4 默认启用 Turbolinks(并且你的application.js) so $(function() { ... })更改页面时不会总是触发。你可以尝试绑定到turbolinks:load反而:

$(document).on('turbolinks:load', function() {
    setInterval(rotateQuotes, 5000);
});

您可能想要绑定到turbolinks:before-visit也清理东西。

或者,如果您不关心的话,可以禁用 Turbolinks。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 中的 JQuery 在从另一个页面链接后失败,但在页面加载时工作 的相关文章

  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • 您如何看待引导模式触发器的相应回调?

    On 引导模态 http getbootstrap com javascript modals 我们知道我们可以为触发器绑定事件 例如show or hide using show shown hide hidden 但此事件绑定仅适用于一
  • Fancybox 画廊组

    我正在使用 fancyboxhttp fancyapps com fancybox http fancyapps com fancybox 我的问题是 我可以将不同的资源组合在一起吗 我的意思是同一画廊 或 组 中带有内嵌或视频的图像 如果
  • 如何将枚举作为字符串存储到rails中的数据库中

    如何在 ruby 中创建迁移 其中默认值是字符串而不是整数 我想将枚举存储到数据库中 但我不想将其存储为整数 因为这样对于另一个应用程序来说没有意义想要使用同一张桌子 我该怎么做default female 代替default 0 clas
  • 我可以使用 jQuery 动态创建文件(及其内容)吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 这是我的 HTML 代码 ul li
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing
  • Laravel 使用 Ajax 上传文件

    我正在使用 Laravel 框架 我有一种向数据库添加新项目的形式 在该形式中用户还可以拖放文件 然后 会显示一个进度条 直到完成为止 使用 Ajax 将文件上传到服务器 提交该表格后 我运行addItem在控制器中运行 我想要执行 检查
  • 获取一行中的最后一个 li jQuery

    我们有一个简单的ul ul li some text li li some some text li li text more li li text here li ul ul text align center width 100px l
  • Jquery:是否有某种方法可以使 val() 返回空字符串而不是空列表的“未定义”?

    使用 Jquery 是否有某种方法可以使 val 在针对空元素列表调用时返回空字符串而不是 未定义 例如 我有这样的代码 var x my textbox id not watermark val 我的想法是 我想获取文本框的值 但如果它当
  • 使用 jQuery 插件及其依赖项的指南 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 jQuery 插件通常依赖于外部文件 jQuery 库 样式表 CSS 图像 其他插件等 使用 和编写 解决依赖关系放置问题的 jQuery 插
  • 未捕获的类型错误:无法读取 null 的属性值[重复]

    这个问题在这里已经有答案了 我是 jQuery 新手 我正在尝试创建一个登录表单 当用户输入简短的用户名时 该表单会切换文本 这是我的代码 当我单击按钮时什么也没有发生 我检查了控制台 它在我的代码中的特定行上显示了标题上的错误 我也检查了
  • 如何以编程方式禁用 元素上的自动选择?

    然后用户使用 TAB 或 SHIFT TAB 跳转 到某个文本框 并且该文本框恰好有一个值 那么该值将被自动选择 我想禁用此行为 我认为这可以在 focusin 事件处理程序内部完成 input text focusin function
  • 如何在提交表单时调用 jquery 函数?

    我有一个表格如下
  • 使用 Paperclip 和 Multipart 请求将文件上传到 Rails JSON API 服务器

    我想将文件从 Android 客户端上传到 Rails JSON API 服务器 我正在从 Android 客户端发送一个 Multipart form 请求 如下所示 Content Type multipart form data bo
  • jQuery Signature Pad:使用类型化版本获取 JSON 输出

    我一直在使用 Thomas J Bradley 的 jQuery Signature Pad 插件来捕获绘制的签名 并且效果很好 我想做的是还允许输入签名如演示所示 http thomasjbradley ca lab signature
  • jqGrid - 如何将网格设置为最初不加载任何数据?

    如何创建网格但不加载任何数据 如果我省略url选项然后loadError回调被触发 目前我们设置url NoData json其中 NoData json 是一个静态文件 其中没有行 问题出在我们的loadComplete如果网格不包含数据
  • jquery改变图像src

    代码与 adminLink 工作得很好 但是 itemLink 没有 我已经尝试了我能想到的一切 我想我需要一双新鲜的眼睛 我想做的就是在单击元素时更改这两个 img 的 src code document ready function H
  • 可以通过 url 发送 JSON 吗?

    我有一个 ruby 哈希 其中键是 url 值是整数 我将哈希值转换为 JSON 我想知道是否能够通过 AJAX 请求在 url 内发送 JSON 然后从 params 哈希值中提取该 JSON 另外 我将把 JSON 化的 ruby 哈希
  • c3js数据标签的位置

    有没有可能的方法来更改数据上方标签的位置c3条形图 在官方文档中 很好地解释了如何通过操作 y 和 x 整数来更改 x 和 y 测量轴上标签的位置 但我没有找到任何数据标签 我试图用简单的方式指出它d3其上c3是基于但是console lo
  • 选择更新后不起作用

    我有一个选择的下拉菜单 我更改了选项内容并调用触发器选择 更新但选择不重建下拉列表 这是我更新的

随机推荐

  • 仅当页面位于 React Router Dom 的站点内时,如何返回一页?

    我想创建一个 返回 按钮 如果该页面位于网站内 则该按钮仅返回一页 我试过以下这个答案添加返回按钮 import useNavigate from react router dom function YourApp const naviga
  • pcap_lookupnet 返回错误的 IP 地址

    以下 libpcap 文档中的示例代码生成以下代码 该代码应报告给定接口的 IP 地址 本例中为 eth0 为简洁起见 省略错误检查 include
  • 填充 Azure AD B2C Orchestration 中的电子邮件地址文本框

    我正在使用自定义策略来执行一些用户旅程并使用MFA 的社交和本地帐户 在其中一个步骤中 我询问用户他们的电子邮件地址 我正在使用 LocalAccountDiscoveryUsingEmailAddress 在第一个屏幕上获取他们的电子邮件
  • 在 MVC3 中使用 JQuery 渲染部分视图

    我有一些记录 单击每条记录后 信息需要显示在手风琴中 该信息应该从数据库动态获取 到目前为止我所做的是 创建局部视图 那应该显示详细信息 单击记录后 我调用 jquery 方法并在控制器上执行我的方法 控制器以 Json 形式返回对象 或任
  • 向 Selenium2(WebDriver) chrome 驱动程序添加扩展

    我使用下面的代码使用 webdriver selenium 2 启动 chrome Map
  • Modelica 仿真和方程初始化总时间计算

    我想测量 DAE 系统的总模拟和初始化时间 我对挂钟时间感兴趣 就像 Matlab 中函数 tic toc 给出的时间 我注意到在 Modelica 中 模拟时间有不同的标志 但实际上 与我按下模拟按钮到模拟结束所经过的时间 大约用手机时钟
  • 如何在 Java applet 中显示位图图像?

    我很难弄清楚如何在 Java 小程序中显示图像 或 ImageIcon 以下是我的代码 图片 test bmp 确实存在并且位于 D 驱动器上 但是当我运行它时 我得到的小程序窗口中没有任何内容 有人可以告诉我我缺少什么来使 ImageIc
  • 如何避免最后打印nil?

    我已经编写了这个函数来打印板的状态 但最终 由于没有返回 该函数打印为零 功能 defun show board board dotimes number 8 dotimes number2 8 let pos aref board num
  • 如何在php中提取2个标签之间的文本

    我需要在一堆文本中找到 2 个标签 并保留它们之间的任何文本 例如 如果 开始 标签是 start 结束 标签是 end 鉴于此文本 rtyfbytgyuibg start isnv4b987b6vdc5y6ughnjmn9b8v76cty
  • 如何将动画图像插入仅适用于 Outlook 2013 的电子邮件正文? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在尝试将 gif 插入电子邮件正文中 并将其显示在 Outlook 中 我尝试过插入 图片 但它会将 gif 转换为静态图像形式 即使原始图像是动画的 如何在 Outlook 中
  • 如何在这段 PHP 和 MySQL 代码中演示 SQL 注入?

    首先我想指出 这是对我自己的数据库的一次教育尝试 目的是更好地理解 MySQL 注入以保护我自己的代码 我需要找出几个示例来说明如何根据以下代码构建 MySQL 注入 这是一个基本的用户登录系统 我接受用户名和密码而不进行任何转义 user
  • 有没有用 Java 实现的验证 HTML 解析器?

    我需要用 Java 解析 HTML 4 理想情况下 我想要一个与 SAX 兼容的实现 我知道 Java 有许多 HTML 解析器 但是 它们似乎都执行 整理 换句话说 它们将纠正格式错误的 HTML 我不想要这个 我的要求是 没有整理 如果
  • Flutter 键盘使文本字段隐藏

    我是新来的扑腾 我添加了一个带有文本字段的表单 当我单击文本字段并且键盘出现时 文本字段会上升 这是我的代码 Widget build BuildContext context MediaQueryData mediaQuery Media
  • 我想沿着特定路径制作对象的动画

    我必须移动路径上的小矩形 在画布内单击后 矩形会移动 我无法为其设置动画 因为对象只是跳转到所需的点 请在以下位置找到代码Fiddle HTML
  • InstallShield Basic MSI 卸载不显示带有“完成”按钮的对话框

    我使用 InstallShield 2018 并创建了一个 Basic MSI 项目 卸载产品时 它会确认我是否要继续卸载 确认后开始卸载 但随后它就消失了 最后没有显示一个对话框 您可以在其中单击 完成 按钮 因此 用户不知道卸载是否完成
  • 注册全局热键而不禁用其密钥

    我想制作一个程序 即使它在任何时候都不活动 也可以捕获键盘事件 Hooks 太复杂了 我需要做很多事情才能使其正常工作 制作 DLL 读取它等等 所以我决定继续使用热键 但现在我有一个问题 注册热键会禁用键盘上的按键 因此我只能将按键发送到
  • 为什么要使用指针? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我知道这是一个非常基本的问
  • 对大 O 表示法感到困惑

    根据这本书 大O的意思是 f n O g n means c g n is an upper bound on f n Thus there exists some constant c such that f n is always c
  • Windows Phone下如何获取设备方向改变事件

    对于 Windows Phone 当设备进入横向模式时 我是否可以注册一个事件 我之所以问这个问题是因为我们有一个带有输入框的视图 当处于横向模式时 TextBox部分被键盘阻挡 所以我想当页面处于横向模式时可能必须隐藏页面上的一些附加信息
  • Rails 中的 JQuery 在从另一个页面链接后失败,但在页面加载时工作

    我在主页上使用了一个报价旋转器 当我直接从浏览器加载页面 在浏览器中输入地址并按回车键 时 它工作正常 但是 如果我单击指向我网站中另一个页面的链接 然后链接回主页 它就会停止工作 更具体地说 引号开始重叠 几乎就像该方法的两个实例正在运行