Can someone explain to me why is this behaviour please?
The code below only works if I reload the page. It does not work when the page is loaded through a link. I imagine
that part of the problem is turbolink and ajax, then how do I solve this problem? I did try to move the javascript tag from the top to
the bottom of the page in the application layout, but that gave me trouble. I am using cocoon and every time I want to use a nested
attribute instead of a single copy I am getting multiple. An undesired feature.
Any time you see a JavaScript working when it is a fresh load (or reload) of the page, but not on a link, you are being trapped by Turbolinks. The best way to solve this is to wrap any functions in a listener on the page:change event, which is fired by Turbolinks both when the page is loaded (at the same time as dom:loaded) but also whenever TL has refreshed part of the page.