Как заставить Rails отвечать на Ajax-запрос новым файлом Javascript? - PullRequest
0 голосов
/ 23 февраля 2011

У меня есть запрос Ajax для обновления части веб-страницы. Вот код, который я делаю так:

render :update do |page|
  page.replace_html "my_id", :partial => "my_partial"
end

В рамках этого обновления я хотел бы загрузить новый JavaScript, который обрабатывает поведение этой недавно загруженной части страницы.

JavaScript, который я непосредственно включил в частичную версию, прекрасно работает:

<script type="text/javascript">
  alert('reached');
</script>

Однако загружаемый мной JavaScript со ссылкой внутри партиала не загружается:

<script type="text/javascript" src="/javascripts/myScript.js"></script>

Как правильно это делать?

Ответы [ 2 ]

1 голос
/ 23 февраля 2011

Я попробовал следующее, и это, кажется, работает, не уверен, сработает ли это в вашей ситуации, и вам, возможно, придется переписать javascript для прототипа:

<script type="text/javascript">
var e = document.createElement('script')
e.setAttribute("type","text/javascript");
e.setAttribute("src", 'url_of_js_external');
document.getElementsByTagName('head')[0].appendChild(e);
</script>
0 голосов
/ 23 февраля 2011

Использование живого фреймворка jQuery должно делать то, что вы хотите.Здесь приведен пример

http://jsfiddle.net/bRxxF/

$('.doit').live('click',function(){
   $(this).addClass('red');
});

В основном вы можете использовать вживую, чтобы наблюдать за новыми элементами dom на странице, которые соответствуют вашему селектору, и реагировать на события на них.Таким образом, ваш javascript загружается рано, но связывается только тогда, когда происходит ajax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...