如何让这个jquery与Rails 4和TurboLink一起工作?

如何让这个jquery与Rails 4和TurboLink一起工作?,jquery,ruby-on-rails,Jquery,Ruby On Rails,轨道4.2.2 gem turbolinks //=需要涡轮链路 我成功地使用了$(document).on('page:change',function(){/})但是这个脚本很难。我不使用jquery turbolinks gem 与我的应用程序中的其他脚本不同,如果我将它放在assets/javascripts文件夹中,它将无法工作。仅当脚本放置在html.erb视图文件中时,它才起作用 只有第一次它才能正常工作。也就是说,我希望它运行,然后再次运行,并分配新的变量值,因为所有变量值在第一

轨道4.2.2
gem turbolinks
//=需要涡轮链路

我成功地使用了
$(document).on('page:change',function(){/})但是这个脚本很难。我不使用jquery turbolinks gem

  • 与我的应用程序中的其他脚本不同,如果我将它放在
    assets/javascripts
    文件夹中,它将无法工作。仅当脚本放置在
    html.erb
    视图文件中时,它才起作用

  • 只有第一次它才能正常工作。也就是说,我希望它运行,然后再次运行,并分配新的变量值,因为所有变量值在第一次运行后都会发生变化。相反,当函数第二次启动时(通过单击
    var craw=$('.glyphicon chevron right').last()
    ),它的行为就像是第一次单击一样,再次添加相同的页面并再次打开相同的模式,因为变量值尚未更新

    $(document).on('page:change', function () {
      var xyz = $('.nextinst').last().attr('href')
      var mod = $('.modal'+xzy)
      var turn = $('.pagination .next_page a').attr('href')    
      var craw = $('.glyphicon-chevron-right').last()
      $(craw).on('click', function() {
         if (!$(mod).size() > 0) {
           $.getScript(turn); 
         }
         setTimeout (function() {
          $(xyz).modal()
         }, 1000);
      });
    });
    

  • 事实证明,问题出在java脚本本身,与TurboLink无关。
    $(document).on('page:change',function(){/})使用旧版本的Turbolink或
    $(文档)。在('Turbolink:load',function)
    上使用新版本是让jquery脚本与Turbolink一起运行的方法

    查看Rails/Turbolinks版本的可能副本?@ArtOfCode我目前使用的是
    Rails 4.2.2
    gem'Turbolinks'=2.3.0
    @inye
    $(文档)。on('page:change',function(){/})
    $(document).ready()问题的解决方案。我已使用
    $(文档)升级到
    gem turbolinks=5.0
    。在('turbolinks:load',function)
    上,但脚本仍无法正确运行。有没有办法强制脚本在重新启动之前重新加载变量?