Tengo problemas para cargar mi javascript cuando utilizo un link_to helper en rieles. Cuando ingreso manualmente la URL con 'localhost: 3000 / products / new' o recargo la página, se carga el javascript, pero cuando paso por un enlace como se escribe a continuación, jQuery $(document).ready
no se carga en la nueva página.
Link_to, javascript no se carga cuando hago clic en este enlace:
<%= link_to "New Product", new_product_path %>
archivo products.js
$(document).ready(function() {
alert("test");
});
Cualquier ayuda será muy apreciada. ¡Gracias por adelantado!
fuente
'page:load'
a enlazar para llamar$(document).ready()
, por lo que haría todo normalmente.Tengo el mismo problema, pero jquery.turbolinks no ayudó. Noté que tengo que anular el método GET.
Ahí está mi muestra:
<%= link_to 'Edit', edit_interpreter_path(@interpreter), method: :get %>
fuente
link_to
pero resulta que el problema real era una<script>
etiqueta en línea en el pie de página. (Las etiquetas de secuencia de comandos en línea son malas con los enlaces turbo).Si está en los rieles 5 en lugar de
'page:change'
, debe usar'turbolinks:load'
así:$(document).on('turbolinks:load', function() { // Should be called at each visit })
Fuente: https://stackoverflow.com/a/36110790
fuente
También puede envolver su enlace con un div que especifique data-no-turbolink.
Ejemplo:
<div id="some-div" data-no-turbolink> <a href="/">Home (without Turbolinks)</a> </div>
Fuente: https://github.com/rails/turbolinks
fuente
Asegúrese de no tener
<script>
etiquetas en línea . (Las etiquetas de secuencia de comandos en línea son malas con los enlaces turbo).fuente
FWIW, de los documentos de Turbolinks , el evento más apropiado para capturar en lugar del
$(document).ready
ispage:change
.page:load
tiene una advertencia de que no se activa en las recargas de caché ...Y dado que Turbolinks solo está cambiando la vista,
page:change
es más apropiado.fuente
page:load
no me estaba funcionando en las actualizaciones; Recomiendo esta solución.La solución que resolvió mi problema fue agregar esta meta propiedad.
<meta name="turbolinks-visit-control" content="reload">
Esto asegura que las visitas a una determinada página siempre activarán una recarga completa.
Esto fue increíblemente útil para trabajar en una solución para resolver el problema que tenía con esto, https://github.com/turbolinks/turbolinks#reloading-when-assets-change .
fuente