为什么当我在带有锚点的页面之间移动时,Rails不重新加载我的javascript文件
Why is Rails not reloading my javascript files when I move between pages with an anchor?
更新2:我已经通过将javascript直接移动到我的视图文件中暂时解决了我的问题,但我仍然想知道为什么当我使用<a>
标记在页面之间移动时,Rails没有重新加载我的javascript文件。
更新1:我尝试将代码分成两个视图,一个用于语言,另一个用于文本更改。当我从语言页面使用Anchor链接到文本页面时,即使我事先没有在语言页面上做任何其他操作,我的home.js文件的内容也不会再次运行。在不重新运行document.ready
javascript的情况下销毁和创建视图时发生了一些问题。
原件:我正试图构建一个支持多种语言的Rails应用程序,但它正在进一步破坏javascript。在我看来,我有两个锚可以在英语和法语之间切换,点击后刷新页面和所有文本,无论是否支持语言。这是意料之中的事。
然而,在我点击其中任何一个链接后,我为页面下方的文本区域定义的keyup
javascript事件会完全中断。我在Rails或javascript控制台中没有收到任何错误,它只是停止了工作。
更令人困惑的是,当代码在我点击锚之前工作时,我正在将文本区域中的文本从页面加载时的默认值更改为默认值。单击锚点后,文本会按预期变回默认页面文本,并且我的javascript会中断。如果我在页面中断后用F5
刷新页面,那么javascript不仅可以工作,新的语言设置也会保存,而且还会重新出现javascript仍在工作时的最旧值。
事件序列示例:
- 初始页面加载,默认文本为"试用!/72y 17 0u7!"
- 将文本更改为"Try it",其他文本区域更改为"72y 17"
- 更改语言,页面重新加载,默认文本为"试试看!/72y 17 0u7!",javascript keyup事件停止工作,但我将第一个文本区域改为说"Hello World"
- 用F5刷新页面,javascript keyup事件再次工作,文本区域现在显示"Try/72y 17"
home.html
<h3><%= t('intro-title') %></h3>
<p><%= t('intro-paragraph') %></p>
<a href="/?locale=en" type="button">English</a>
<a href="/?locale=fr" type="button">Français</a>
<textarea id="l33tify-in">Try it out!</textarea>
<textarea id="l33tify-out" disabled="true">72y 17 0u7!</textarea>
home.js
$( document ).ready(function() {
$('#l33tify-in').keyup(function(){
$.get('/l33tify_text', { 'l33tify_me' : $(this).val() }, function(data) {
$('#l33tify-out').val(data['l33tified']);
});
});
});
home_controller.rb
class HomeController < ApplicationController
before_action :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def index
end
end
不确定您是否仍在为此而挣扎,但请尝试关闭涡轮链接。此处报告的类似问题
- 数据表 AJAX 筛选器重新加载数据
- View赢得't在页面更改时加载Rails 4应用程序中的JS
- 如何在新加载的页面上执行(下拉)操作
- 根据上一个选项卡的选择器重新加载选项卡
- 获得“中止,因为不接受 0”并使用反应热加载器重新加载整页
- 咕噜咕噜的手表:实时加载重新加载落后 1 步....
- 如何为新加载的元素提供JQuery UI工具提示
- 重新加载Rails部分ajax回调
- 如何在新加载的页面上使用相同的JavaScript代码(通过重定向)
- 使用PHP或Javascript检测页面刷新或新加载
- 检查页面是否会加载(Rails/Javascript)
- 砌体重新加载&reloadItems不起作用
- 如何使javascript计时器重新加载
- 如何获取新加载的图像's width / naturalWidth
- 列出并调用firefox扩展中新加载的选项卡中的js函数
- 如果出现换行符,则通过js加载Rails text_area won't
- 咖啡脚本不火的页面更改,但工作在页面加载.Rails[5]
- 旋转器重新加载图像似乎在覆盖层后面
- AJAX调用后,新加载的CSS选择器对jQuery.ech()不可用
- 如何用jquery加载rails表单部分并作为一个表单提交