2010-07-13 3 views
0

У меня есть страница, где я загружаю частичную (содержащую форму) динамически.Как загружать jQuery динамически с помощью Rails?

Итак, после этого вы нажимаете кнопку, через jQuery я делаю get, получаю форму, и я меняю html div. Все отлично работает.

Проблема в том, что у меня есть javascript, который я добавил в строку на частичном, и я бы хотел его удалить. Поэтому в моей частичной части я сделал что-то вроде:

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

Конечно, в моем макете у меня есть заголовок урожайности. На самом деле я вижу, что мои скрипты включены, но содержимое $(function(){}); никогда не выполняется. Какой-нибудь совет об этом? Любой лучший способ сделать это? Я хочу переместить свой JavaScript в внешние js-файлы, но пока я не смог найти хороший способ сделать это.

+0

Как выглядит ваш 'yield: header' и его окрестности, возможно, это вопрос последовательности загрузки. – jigfox

+0

мой доход: заголовок сверху, внутри теги. Поэтому, когда вы нажимаете кнопку, чтобы открыть диалог с моей формой, он должен добавить javascript, где он имеет $ (function() {}); код, который должен быть выполнен, когда форма загружена ... –

ответ

0

Вы используете прототип рельсов и JQuery одновременно. Если вы включите оба, функция JQuery не будет запущена. Пожалуйста, проверьте или дайте мне знать, если какая-либо другая проблема.

1

Изменить

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

К (обратите внимание на 'сделать' в content_for)

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

сделать, это создать строитель, так что я думаю, что перед тем вы не получали теги [script src =], добавляемые к вашей [головке]

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

+0

это дало бы мне ошибку или скрипт не был бы доступен, поскольку я там написал .. в любом случае спасибо –

+0

ОК, если вы можете опубликовать пример нерабочего HTML/страницу сценария, которую мы можем диагностировать. Я думаю, что вы читаете и записываете javascript в HTML через File.open - это плохой выбор. –

+0

Я всегда делал то, что рекомендует Джесс. Таким образом, у нас есть все наши JS-файлы в отдельных файлах JS, включенных в раздел head, или они включены в страницу, завернутую в блоки CDATA. –

Смежные вопросы