ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery の `$(document).ready()` を Rails 4 の Turbo Links で動作させるにはどうすればよいですか?

jQuery の `$(document).ready()` を Rails 4 の Turbo Links で動作させるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-21 02:51:13
オリジナル
150 人が閲覧しました

How to Make jQuery's `$(document).ready()` Work with Rails 4's Turbo Links?

Rails 4: Turbo-Links 統合による jQuery の '$(document).ready()' の利用

Rails 4 での作業中アプリケーションでは、開発者は JavaScript ファイルを効果的に整理する必要に遭遇することがよくあります。従来、JavaScript コードはさまざまなビューに分散していました。ただし、より組織化されたアプローチには、それらを個別のファイルにコンパイルし、アセット パイプラインを利用することが含まれます。

ただし、Turbo-Links が有効になっている場合、jQuery の「ready」イベントは制限に遭遇します。後続のクリック中に、「準備完了」イベントの発生が停止し、そのスコープ内のコードの実行に影響します。この問題は、Turbo-Links が有効になっているとページがリロードされないために発生します。

これを解決するには、Turbo-Links がアクティブなままである間、jQuery イベントが問題なく機能することを確認することが重要です。 2 つのアプローチが考えられます。

アプローチ 1: Rails 固有のリスナーによるイベント ラッピング

この方法には、Rails 固有のリスナー内で JavaScript スクリプトをラップすることが含まれ、効果的にページの読み込み時に実行されます。

アプローチ 2: ターボリンクの利用イベント

Turbo-Links は、必要な JavaScript コードをトリガーするために使用できる特定のイベント「page:load」を提供します。このイベントを利用することで、開発者は後続のクリックによって発生する問題を回避できます。

CoffeeScript ユーザーの場合、次のコード スニペットが解決策を提供します。

ready = ->

  ...your coffeescript goes here...

$(document).ready(ready)
$(document).on('page:load', ready)
ログイン後にコピー

このスニペットの最後の行は次のメッセージをリッスンします。 Turbo-Links がトリガーする「page:load」イベント。

JavaScript ユーザーの場合、次の同等のコードを使用できます。採用:

var ready;
ready = function() {

  ...your javascript goes here...

};

$(document).ready(ready);
$(document).on('page:load', ready);
ログイン後にコピー

Rails 5 では、更新された Turbolinks 5 を使用して、「page:load」イベントが「turbolinks:load」に置き換えられ、最初のページ読み込み時にもトリガーされます。これにより、コードが次のように簡素化されます。

$(document).on('turbolinks:load', function() {

  ...your javascript goes here...

});
ログイン後にコピー

これらのソリューションを実装することで、開発者は、Turbo-Links の存在にもかかわらず jQuery イベントが正しく機能し続けることを効果的に保証できます。

以上がjQuery の `$(document).ready()` を Rails 4 の Turbo Links で動作させるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート