簡體   English   中英

如何使Rails用新的Javascript文件響應Ajax請求?

[英]How to make Rails respond to Ajax request with a new Javascript file?

我有一個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>

這樣做的正確方法是什么?

我嘗試了以下操作,但它似乎可以正常工作,不確定它是否可以在您的情況下正常工作,並且您可能需要重寫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>

使用jQuery的實時框架應該可以滿足您的需求。 這里舉個例子

http://jsfiddle.net/bRxxF/

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

基本上,您可以使用live來監視頁面上與選擇器匹配的新dom元素,並響應它們上的事件。 這樣,您的javascript會提前加載,但僅在ajax發生后才綁定

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM