【问题标题】:Rails 5, Turbolinks 5 JQuery Stops Working on Page ReloadRails 5,Turbolinks 5 JQuery 停止处理页面重新加载
【发布时间】:2016-10-07 21:36:51
【问题描述】:

我已经看到这个问题在这里发布了几次,但没有一个解决方案对我有用,包括 Rails 指南中的解决方案。下面我的代码有什么问题吗?本质上,当页面最初加载时,JQuery 工作,但是当您重新加载页面时,一切都停止工作。我是 Rails 菜鸟,非常感谢您的帮助和耐心。

app/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap-sprockets
//= bootstrap.min.js
//= require_tree .

$(document).on('ready turbolinks:load', function(){
    $(".full-width").fadeIn(2500);

    $(".index-thumbnails").hover(function(){
        $(this).animate({opacity: 0.60},"fast")
    },
    function(){
        $(this).animate({opacity: 1},"fast")
    });

    setTimeout(function(){
    $("#subscribeModal").modal("show"); 
    }, 
    5000
    );

    $(".close").on("click", function(){
        $("#subscribeModal").modal("hide");
    });

    $(".social").mouseover(
        function(){
          $(this).animate({height: 116, width: 116},"fast");
        }
    );

    $(".social").mouseout(
        function(){
          $(this).animate({height: 96, width: 96},"fast");
        }
    );

});

【问题讨论】:

  • 尝试 $(document).on('turbolinks:load', function() { ... }); 从您的通话中删除 ready
  • 我也试过了。没有运气。还有其他想法吗?
  • 阅读Turbolinks 文档——尤其是关于幂等事件处理程序的部分。您应该使用带有jQuery.on $(document).on(click, 'selector' ... 的委托事件处理程序,而不是将处理程序直接附加到元素。此外,如果这是一个 Rails 4 应用程序,您实际上可能正在使用现在称为 turbolinks-classic 的东西。 turbolinks-classic中对应的事件是page:change
  • 同时检查控制台是否有错误。听起来很明显,但你会感到惊讶......

标签: javascript jquery ruby-on-rails turbolinks turbolinks-5


【解决方案1】:

试试$(document).on('turbolinks:load', function(){ 并将gem 'jquery-turbolinks' 添加到您的gemfile 中。它会工作的。 检查并通知我。我想这次应该可以了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 2016-10-14
    • 1970-01-01
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多