Mes connaissances de Ruby on Rails et javascript sont rudimentaires alors s'il vous plaît pardonnez-moi si cette question a une réponse simple. J'ai un site Web qui a besoin d'un menu déroulant à plusieurs niveaux. J'ai adapté le menu déroulant scriptalculous qui travaille sur une copie de test de mon site Web en utilisant mongrel. Il y a plusieurs pages chacune avec sa propre disposition. Lorsque je saute d'une page à l'autre, le menu déroulant fonctionne bien, mais quand je vais sur une page "voir/montrer", seul le menu de premier niveau fonctionne. Je soupçonne que sauter à montrer perd le javascript en quelque sorte. Tout le monde sait comment résoudre ce problème. Dans toute ma tête de mise en page j'ai ce qui suit: -Menu déroulant Scriptaculous ne fonctionne pas dans les vues/spectacle
<%= stylesheet_link_tag 'style' %>
<%= javascript_include_tag :defaults %>
<script src="javascripts/prototype.js" type="text/javascript"></script>
<script src="javascripts/scriptaculous.js" type="text/javascript"></script>
<script type='text/javascript' src='javascripts/menu.js'></script>
J'utilise le protype, les contrôles, etc., qui sont venus avec le téléchargement Scriptaculous.
Merci Jonathan problème résolu Devrait utiliser javascript_include_tag pas "src = ..." comme erreur quand les pages vont des modèles racines (index) au lien relatif (index à montrer). Rails ne peut pas résoudre l'URL de "src = ...." En utilisant javascript_include_tag Rails met le lien dans tous les modèles (index, show, etc.). Si je mets le chemin complet dans "src = ...." ça devrait marcher, car tous les templates obtiennent les URL correctes par Rails. Encore besoin d'essayer ça. Plus simple de laisser Rails faire des liens en utilisant "..._ tag" script ??? "," proto .. "," menu ";" N'a pas utilisé "... de_tag: default" qui charge tous les .js dont ils n'ont pas besoin, ce qui ralentit le chargement de la page. – Don
ne devrait pas ralentir de manière significative le chargement tant que les fichiers sont mis en cache. À moins que le temps d'exécution du script soit particulièrement lent. –