在Rails中,jQuery对象在页面加载后消失,在刷新时重新出现

时间:2017-04-03 14:14:12

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

我有一些自定义jQuery代码,用于创建业务优化机器的前端。

simutronX.js

$(function(){
    $("#slider_constraint_a").slider({
    orientation: "vertical",
    range: true,
    values: [17, 67],
    slide: function(event, ui) {
      $("#constraint_a").val(ui.values[0] + " - " + ui.values[1]);
      }
    });
    $("#constraint_a").val($("#slider_constraint_a").slider("values", 0) +
      " - " + $("#slider_constraint_a").slider("values", 1));

    ...

    $("#slider_constraint_e").slider({
    orientation: "vertical",
    range: true,
    values: [17, 67],
    slide: function(event, ui) {
      $("#constraint_e").val( ui.values[0] + " - " + ui.values[1] );
      }
    });
    $("#constraint_e").val( $("#slider_constraint_e").slider("values", 0) +
      " - " + $("#slider_constraint_e").slider("values", 1));
});

当页面加载时,约束滑块会非常短暂地出现,然后消失。刷新时,这些项目重新出现。我按照建议here安装了jquery-turbolinks gem,并将其添加到我的application.js文件中,然后预编译资产并重新启动服务器。

的application.js

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
//= require jquery-ui

这似乎没有帮助。 jquery-turbolinks readme中列出了类似的问题(例如双重加载...),但我的代码没有列出任何问题。

还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

我以前遇到过这个问题。解决方案是使用on change操作包围Jquery代码,而不是js文件中的load操作

 $(document).on('page:change', function(){