$(document).ready() et Turbolinks

Lorsqu’on utilise Turbolinks 5 (c’est le cas avec Rails 5), on peut se rendre compte que le code JavaScript placé entre $(document).ready() n’est pas forcément exécuté une fois tout le contenu de la page chargé. Et cela peut provoquer des erreurs.

Pour palier à cela, on peut utiliser l’événement turbolinks:load.

Par  exemple, au lieu d’écrire :

$(document).ready(function() {
  $(".btn-more").click(function() {
    console.log("Clic !");
  });
});

ou

$(function() { $(".btn-more").click(function() { console.log("Clic !"); }); });

on écrira :

$(document).on('turbolinks:load', function() { 
$(".btn-more").click(function() {
console.log("Clic !"); });
});

Laisser un commentaire