繁体   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