1. ホーム
  2. ジャバスクリプト

[解決済み】Rails 4:ターボリンクで$(document).ready()を使用する方法

2022-03-24 15:13:08

質問

Rails 4のアプリで、JSファイルをrailsの方法で整理しようとしたところ、問題にぶつかりました。以前は、JSファイルが異なるビューに散らばっていました。私はそれらを別々のファイルに整理し、assetsパイプラインでそれらをコンパイルしました。しかし、ターボリンクをオンにした場合、jQueryの"ready"イベントがその後のクリックで発生しないことを知りました。最初にページを読み込むときは動作します。しかし、リンクをクリックしたときに ready( function($) { は実行されない(実際にページが再びロードされないから)。良い説明です。 これ .

そこで質問ですが、ターボリンクがオンになっているときに、jQueryのイベントが正しく動作するようにするには、どのような方法があるのでしょうか?スクリプトをRails固有のリスナーでラップするのですか?それとも、railsにはそれが不要になるようなマジックがあるのでしょうか?特にapplication.jsのようなマニフェスト経由で複数のファイルをロードする方法については、ドキュメントが少し曖昧になっています。

解決方法は?

この問題を解決するための別の方法を知りました。もし、あなたが jquery-turbolinks ジェム を実行すると、Rails の Turbolinks イベントを document.ready イベントを使用することで、通常の方法でjQueryを記述することができます。ただ jquery.turbolinks のすぐ後に jquery をjsマニフェストファイル(デフォルトでは。 application.js ).