2016-09-13 4 views
0

turbolinks:loadを使用した場合Turbolinks readmeによると、我々はページ要素に直接イベントリスナを設定すべきではありません。Turbolinks 5 in Railsを使用しているときにページ要素のイベントリスナを処理する方法は?

可能、turbolinksの使用は避けてください:loadイベントを直接ページ上の要素にイベントリスナーを追加します体。代わりに、イベント委任を使用して、ドキュメントまたはウィンドウ上にイベントリスナーを一度登録することを検討してください。

そのような場合には、個人の要素にリスナーを設定する必要があることがあります。それを行うための推奨される方法は何ですか?別のTurbolinksイベントを使用しますか?他に何か?

答えて

2

イベントは(など、keyUpイベントをクリックしてください)、ユーザによってトリガされた場合は、単に

$(document).on('click', '#id', function(e) {...... 

を使用することができ、それがないことができ、クラス/ IDに文書にバインドされているので、それが正常に動作します変更または削除されます。可能であればこれを使用してください。

ページの読み込みに何かが必要な場合は、以下のようにturbolinks:loadを使用する必要があります。ターボリンクではフルページのリロードは実際には行われませんが、別のページに既にあることをブラウザに何らかの形で伝えなければならないので、これが必要です。

$(document).on('turbolinks:load', function() { 
    $('.class').geocomplete(); 
}); 
+0

意味があります。私はそれを少し考えすぎていると思う。 – croceldon

関連する問題