2010-07-13 5 views
0

J'ai une page, où je charge un partiel (qui contient un formulaire) de manière dynamique. Donc, après que vous cliquez sur un bouton, via jQuery, je fais un get, j'obtiens le formulaire et je change le html d'un div. Tout fonctionne bien.Comment charger dynamiquement jQuery avec Rails?

Le problème est que j'ai javascript que j'ai ajouté en ligne sur le partiel et je voudrais l'enlever. Donc, dans mon parti j'ai fait quelque chose comme:

<% content_for :header %> 
<%= javascript_include_tag 'myscript' %> 
<%end%> 

Bien sûr, dans ma mise en page j'ai l'en-tête de rendement. En fait, je peux voir mon script inclus mais le contenu de $(function(){}); ne sera jamais exécuté. Une astuce à ce sujet? Une meilleure façon de le faire? Je veux déplacer mon JavaScript vers des fichiers js externes, mais pour l'instant, je ne pouvais pas trouver un bon moyen de le faire.

+0

À quoi ressemble votre 'yield: header' et ses environs, peut-être s'agit-il d'une séquence de chargement. – jigfox

+0

mon rendement: l'en-tête est sur le dessus, à l'intérieur des étiquettes . Donc, quand vous cliquez dans le bouton pour ouvrir une boîte de dialogue avec mon formulaire, il faut ajouter le javascript où il a le $ (function() {}); code qui devrait être exécuté lorsque le formulaire est chargé ... –

Répondre

0

Utilisez-vous le prototype de rails et Jquery simultanément.Si vous incluez les deux alors la fonction Jquery ne fonctionnera pas.S'il vous plaît vérifier ou laissez-moi savoir si un autre problème.

1

changement

<% content_for :header %> 
<%= javascript_include_tag 'myscript' %> 
<%end%> 

Pour (notez le 'do' dans le content_for)

<% content_for :header do %> 
<%= javascript_include_tag 'myscript' %> 
<%end%> 

Le do crée le constructeur, donc je pense avant vous n'obteniez pas les balises [script src =] ajoutées à votre [tête]

http://guides.rubyonrails.org/layouts_and_rendering.html#using-content-for

+0

il me donnerait une erreur ou le script ne serait pas disponible comme je l'ai écrit là .. de toute façon merci –

+0

OK, si vous pouvez poster un exemple de la non-travail HTML/page de script, nous pouvons diagnostiquer. Je pense que vous lisez et écrivez javascript dans le HTML via File.open est un mauvais choix –

+0

J'ai toujours fait ce que Jess recommande. Nous avons tous nos fichiers JS dans des fichiers JS séparés inclus dans la section head de cette façon, ou inclus dans la page enveloppée dans des blocs CDATA. –

Questions connexes