Rails 5: how to use $(document).ready() with turbo-links Rails 5: how to use $(document).ready() with turbo-links javascript javascript

Rails 5: how to use $(document).ready() with turbo-links


Rather than listen to the ready event, you need to hook in to an event fired by Turbolinks for every page visit.

Unfortunately, Turbolinks 5 (which is the version that appears in Rails 5) has been re-written, and does not use the same event names as in previous versions of Turbolinks, causing the answers mentioned to fail. What works now is to listen to the turbolinks:load event like so:

$( document ).on('turbolinks:load', function() {  console.log("It works on each visit!")})


Native JS :

document.addEventListener("turbolinks:load", function() {    console.log('It works on each visit!');});


In rails 5 the easiest solution is to use:

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

Instead of $(document).ready. Works like a charm.