Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menjadikan `$(document).ready()` jQuery berfungsi dengan Pautan Turbo Rails 4?

Bagaimana untuk Menjadikan `$(document).ready()` jQuery berfungsi dengan Pautan Turbo Rails 4?

Susan Sarandon
Lepaskan: 2024-12-21 02:51:13
asal
150 orang telah melayarinya

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

Rails 4: Menggunakan '$(document).ready()' jQuery dengan Integrasi Pautan Turbo

Semasa bekerja pada Rails 4 aplikasi, pembangun sering menghadapi keperluan untuk menyusun fail JavaScript mereka dengan berkesan. Secara tradisinya, kod JavaScript tersebar di pelbagai paparan. Walau bagaimanapun, pendekatan yang lebih teratur melibatkan penyusunannya ke dalam fail berasingan dan menggunakan saluran paip aset.

Walau bagaimanapun, apabila Pautan Turbo didayakan, acara "sedia" jQuery menghadapi had. Semasa klik berikutnya, peristiwa "sedia" berhenti menyala, menjejaskan pelaksanaan kod dalam skopnya. Isu ini timbul kerana halaman tidak dimuatkan semula dengan Turbo-Links didayakan.

Untuk menyelesaikan masalah ini, adalah penting untuk memastikan acara jQuery berfungsi dengan sempurna manakala Turbo-Links kekal aktif. Dua pendekatan boleh dipertimbangkan:

Pendekatan 1: Pembalut Acara dengan Pendengar Khusus Rails

Kaedah ini melibatkan pembalut skrip JavaScript dalam pendengar khusus Rails, dengan berkesan memastikan mereka pelaksanaan apabila halaman dimuatkan.

Pendekatan 2: Menggunakan Acara Turbo-Links

Turbo-Links menyediakan acara khusus, "page:load," yang boleh digunakan untuk mencetuskan kod JavaScript yang diperlukan. Dengan memanfaatkan acara ini, pembangun boleh memintas isu yang disebabkan oleh klik berikutnya.

Untuk pengguna CoffeeScript, coretan kod berikut menawarkan penyelesaian:

ready = ->

  ...your coffeescript goes here...

$(document).ready(ready)
$(document).on('page:load', ready)
Salin selepas log masuk

Barisan terakhir coretan ini mendengar acara "page:load", yang dicetuskan oleh Turbo-Links.

Untuk pengguna JavaScript, perkara berikut kod setara boleh digunakan:

var ready;
ready = function() {

  ...your javascript goes here...

};

$(document).ready(ready);
$(document).on('page:load', ready);
Salin selepas log masuk

Dalam Rails 5, dengan Turbolinks 5 yang dikemas kini, peristiwa "page:load" telah digantikan dengan "turbolinks:load," yang dicetuskan walaupun pada pemuatan halaman awal . Ini memudahkan kod kepada perkara berikut:

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

  ...your javascript goes here...

});
Salin selepas log masuk

Dengan melaksanakan penyelesaian ini, pembangun boleh memastikan acara jQuery terus berfungsi dengan betul walaupun terdapat Pautan Turbo.

Atas ialah kandungan terperinci Bagaimana untuk Menjadikan `$(document).ready()` jQuery berfungsi dengan Pautan Turbo Rails 4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan