Javascript 浏览器未执行Rails、jQuery、.js.erb文件、js
我正在尝试使用jQuery,并且一切都很好,直到现在,当我尝试渲染分部并将其附加到div时。下面是我如何设置它的: 我有一个响应js的动作:Javascript 浏览器未执行Rails、jQuery、.js.erb文件、js,javascript,jquery,ruby-on-rails,ruby,erb,Javascript,Jquery,Ruby On Rails,Ruby,Erb,我正在尝试使用jQuery,并且一切都很好,直到现在,当我尝试渲染分部并将其附加到div时。下面是我如何设置它的: 我有一个响应js的动作: def index @objects = Object.find(:all) respond_to do |format| format.js end end 还有一个名为index.js.erb的模板,其中包含一些javascript: alert("hello world"); Firebug返回一个“文本/javascrip
def index
@objects = Object.find(:all)
respond_to do |format|
format.js
end
end
还有一个名为index.js.erb的模板,其中包含一些javascript:
alert("hello world");
Firebug返回一个“文本/javascript”响应,其中包含:
alert("hello world");
但是警报窗口不会出现,其他JavaScript也不会工作。我退房了
我差不多也跟着。我尝试了其他一些方法,比如使用.rjs而不是.erb,并将其放入我的模板中:
page.alert("hello world");
但是我得到了同样的结果,浏览器从不执行JS
有人知道为什么JavaScript没有被执行吗
我正在运行Rails 2.3.4。您必须从视图中调用它,否则它将永远无法执行 控制器示例:
def index
@objects = Object.find(:all)
respond_to do |format|
format.js{
render :text => "alert('hello')"
}
end
end
以及一个index.html.erb,其中包含:
<script type="text/javascript">
$(function(){
$.ajax({ url: '/controller', type: 'get', dataType:'script' });
});
</script>
或:
page您似乎没有使用任何特定于jQuery的东西,但请注意,Rails附带的是原型,而不是jQuery。如果您想切换,请查看jRails。我的情况是,我没有这个操作的html版本,它严格用于通过ajax(无休止的分页)加载页面。出于某种原因,即使在我的respond_to block中调用render:text=>“alert('hello');”时,我仍然没有收到警报,但firebug说我收到了一个包含正确内容的text/javascript响应。事实证明,我忘记了ajax调用中的数据类型:“script”。谢谢你的帮助,我自己不会抓到的。数据类型:“script”在使用jQuery表单插件时也救了我。一旦正确设置了js.erb,如果没有它,它仍然无法作为JavaScript运行。谢谢
page.alert("hello world")
page << "hello world"