2009-11-29 4 views
0

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.

Répondre

0

semble le plus probable que votre problème se situe en dehors de l'extrait de code abrégé inclus dans votre question.

Avez-vous vérifié avec Firebug pour voir si le menu est construit et envoyé correctement, que tous les fichiers nécessaires sont inclus, etc.? (peut-être même pas un javascript)

Il y a beaucoup d'autres possibilités mais il est plutôt difficile à déterminer à partir du code fourni. Étant donné que les autres pages de votre site ont des menus de travail, et que le menu est probablement le même d'une page à l'autre (menu de navigation, je suppose), il est fort probable que les fichiers de balisage ou javascript sont différents tags, balises manquantes, css en ligne avec affichage: aucun, etc.)

+0

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

+0

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. –