首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails 4-导航到另一个页面后未加载jQuery

Rails 4-导航到另一个页面后未加载jQuery
EN

Stack Overflow用户
提问于 2015-09-18 01:27:28
回答 1查看 142关注 0票数 0

我有一个在$(document).ready(function() {});上运行的javascript文件,它工作得很好,直到我导航到网站上的另一个页面,然后返回到原始页面。一旦我回来,jQuery就停止工作了。

我最初通过在特定页面的主体中包含一个<%= javascript_include_tag "xyz" %>来修复此问题,但这会导致js文件加载两次,从而导致事件在发生时触发两次(通常相互抵消)。

有没有想过如何在不两次加载js文件的情况下修复这个bug?根据记录,我已经尝试了其他事件,如load pageinit等。

application.js

代码语言:javascript
运行
复制
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require_tree .
//= require bootstrap-sprockets
//= require owl.carousel
//= require moment
//= require bootstrap-datetimepicker
//= require jquery-ui
//= require turbolinks

testing.js

代码语言:javascript
运行
复制
$(document).ready(function() {
    $(".glyphicon-remove").on("click", function(e) {
        prevAngle = angle;
        angle +=45;

        $(this).animateRotate(angle, prevAngle, 1000);
        e.preventDefault();

        $('.instructions').find('h1').toggleClass('smallfont', 1000);
        $(this).parent().toggleClass("btn-sm");

        if ( $(".instructions").hasClass("isDown") ) {
            $('.instructions').animate({
                top: '30%',
                width: '50%',
                left: '25%'
            }, 1000);
        } else {
            $('.instructions').animate({
                top: '94%',
                width: '100%',
                left: '0',
            }, 1000);
        }

        $(".instructions").toggleClass("isDown");
        $('.instructions').toggleClass('instructions-small');
        $('.instructions').toggleClass('instructions-min');
    });
});

application.html.erb

代码语言:javascript
运行
复制
<head>
  <title><%= yield(:title) %> | Boston EDM Show Rewards</title>
  <%= favicon_link_tag 'favicon.ico' %>
  <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  <%= csrf_meta_tags %>
</head>
EN

回答 1

Stack Overflow用户

发布于 2015-09-18 01:58:22

听起来像是Turbolinks的问题。要么删除Turbolink,要么添加jquery-turbolinks gem。不要忘记在application.js文件中添加jquery.turbolinks

代码语言:javascript
运行
复制
//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//
// ... your other scripts here ...
//
//= require turbolinks
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32636438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档