[英]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的實時框架應該可以滿足您的需求。 這里舉個例子
$('.doit').live('click',function(){
$(this).addClass('red');
});
基本上,您可以使用live來監視頁面上與選擇器匹配的新dom元素,並響應它們上的事件。 這樣,您的javascript會提前加載,但僅在ajax發生后才綁定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.