Rails 5: how to use $(document).ready() with turbo-links
Native JS :
document.addEventListener("turbolinks:load", function() {
console.log('It works on each visit!');
});
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!")
})
In rails 5 the easiest solution is to use:
$(document).on('ready turbolinks:load', function() {});
Instead of $(document).ready
. Works like a charm.