La réponse de @nekogami est ok.
Une autre façon que j’aime bien car un peu plus découplée c’est:
var initMyPlugins = function() {
// Ton code qui devra être exécuté avec ou sans Turbolinks, comme:
$(".js-datepicker").datepicker();
}
$(document).on("turbolinks:load", initMyPlugins);
$(document).on("ready", initMyPlugins);
Pourquoi ? Si le nom d’évènement de Turbolinks change c’est plus facile à repérer dans ton code et à changer à l’avenir.
Aussi, j’aime bien avoir le listenner découplé du code à exécuter.
Je crois que Turbolinks trigger turbolinks:load
au premier rendering aussi, il faut vérifier. Fais un console.log("loaded")
dans initMyPlugins()
dans mon exemple pour être sur que ça s’exécute pas deux fois au premier load.