Maison >interface Web >js tutoriel >Comment puis-je m'assurer que les événements jQuery fonctionnent correctement avec Rails 4 et Turbo Links ?

Comment puis-je m'assurer que les événements jQuery fonctionnent correctement avec Rails 4 et Turbo Links ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-14 18:46:18805parcourir

How Can I Ensure jQuery Events Work Correctly with Rails 4 and Turbo Links?

Rails 4 : Amélioration des fonctionnalités d'événements jQuery avec des Turbo-Links

Lors de l'organisation de fichiers JavaScript dans une application Rails 4, il n'est pas rare de rencontrer problèmes avec l'événement "ready" de jQuery. Avec les liens turbo activés, cet événement ne se déclenche pas lors des clics suivants, laissant les gestionnaires d'événements dans ready(function($) {} inactifs.

Pour relever ce défi, une solution consiste à implémenter un écouteur ou un écouteur spécifique à Rails. tirer parti des propres mécanismes de Rails pour garantir la fonctionnalité des événements.

Une approche efficace consiste à définir une fonction dans CoffeeScript ou JavaScript :

ready = ->
  ...your coffeescript goes here...

$(document).ready(ready)
$(document).on('page:load', ready)

Cette approche utilise l'événement page:load, que turbo-links déclenche après le chargement de la page.

Pour les applications Rails 5 (utilisant Turbolinks 5), l'événement page:load a été remplacé par turbolinks:load, qui se déclenche sur la page initiale charger également. Par conséquent, l'écouteur d'événement suivant suffit :

$(document).on('turbolinks:load', function() {
  ...your javascript goes here...
});

En implémentant cette approche, la fonctionnalité d'événement jQuery peut être intégrée de manière transparente aux turbo-liens, garantissant que l'événement gestion des chargements de pages initiaux et ultérieurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn