2016-06-30 3 views
1

をリロードしないで、私は私の application.jsファイルに次のコードを持っています同じURLに "?current\_prop\_id="とIDを加えたものです。Railsの4 jqueryの機能が一度に動作し、上のRails 4.2.5での作業

これは初めてログインするときに機能します。しかし、私が http://localhost:3000/fooのようなパスを訪れると、それはしません。 のリフレッシュを押すと、ページが再び機能します。

は、それから私は、(私は hereを読んだものに基づいて)、 $(document).on('page:load', ...$(document).readyラインを変更し が、唯一の問題を逆転させたこと。今では初めてですが、 は2番目ではありません。

このコードを静的ファイルにドロップするだけで問題ありません。

私は今、両方 多くのレベルで間違って感じた、application.jsで定義されているが、私は機能がそうでなければ 両方のケースで動作させるために何をすべきかわかりません。誰でも何か提案がありますか?ありがとう。

答えて

1

私は通常(コーヒースクリプトの構文)のような何かを実行します。

$ -> 
    do_on_load() 
    $(window).bind('page:change', do_on_load) 

またはJavaScriptを:do_on_load()

$(document).ready(function() { 
    do_on_load(); 
    $(window).bind('page:change', do_on_load); 
} 

が実行されるべき命令を持つ関数です。とにかく、これはturbolinks + jqueryによって引き起こされ、本当に面倒です。あなたのapplication.jsにロードされている順序を変更することもその動作に影響します。私はターボリンクを使用して再考することをお勧めします...それはあなたにいくつかの頭痛を与えるでしょう。がんばろう!

+0

ありがとうございました。私はターボリンクを再考しました。むしろ、最初に考えたことがあり、コード内のすべての参照を削除しました。自分のファイルに参照を入れているのを覚えていないので、ジェネレータがそれを行っていなければなりません。 – amp108

2

jquery関数で画像をロードする前に同じ問題が発生しました。 Turbolinksがページを読み込む理由。あなたのページにバインドするノードは、もはや存在しません。

私はgem 'jquery-turbolinks'を使用して問題を解決しました。あなたの問題を解決したら、宝物hereを試してみてください。幸運の仲間。

+0

ターボチップのおかげで。私はgem 'jquery-turbolinks'が助けにならなかったので、私の設定から削除することを決めました。私はジェネレータが自動的にそれらを作成しない限り、それらの参照がどこから来たのかも分かりません。再度、感謝します。 – amp108

関連する問題