0

ビジネス最適化マシンのフロントエンドを作成するカスタムjQueryコードがあります。Railsでは、pageloadの後に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)); 
}); 

するとページが読み込ま、制約スライダーは消え、その後、非常に簡単に表示されます。リフレッシュ時に、これらの項目が再表示されます。 jquery-turbolinks gemをhereとしてインストールし、それを私のapplication.jsファイルに追加し、アセットをプリコンパイルしてサーバーを再起動しました。

application.js

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

これが役立っているようには見えません。同様の問題はjquery-turbolinks readmeに記載されています(例:ダブルロード...)が、私のコードには記載されている問題のいずれかが表示されません。

さらに詳しい提案はありますか?

+1

ファイルchangeアクションにしてjQueryのコードを囲むのではなく、あなたのjsの中loadアクションにすることでした。 Turbolinksはバージョン5用に書き直され、多くの構文が変更されました。あなたがgem https://github.com/kossnocorp/jquery.turbolinks/issues/61を使って設定している場合は、互換性ファイルに関する問題があります。 – ellitt

答えて

0

この問題が以前に発生しました。解決策は、あなたがTurbolinks 5を使用している場合、あなたはjquery.turbolinksを使用しないようにしたいことがあり

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

これはうまくいかなかったが、正しい方向に向いていた。私は今あなたの解決策と私がここで見つけたものの組み合わせである同様の '$(document).on( 'turbolinks:load'、function(){'を使います:https://github.com/turbolinks/turbolinks/ blob/master/README.md –

+0

私はちょっとしたお手伝いをしたと思います。申し訳ありませんが、完全に人を助けることはできませんでした。 –

+0

私は自分自身で解決するのにもっと時間がかかりました。ソリューションは、今後この問題を抱える人を助けるためのものです。 –

関連する問題