a10*_*10s 10 javascript ruby jquery ruby-on-rails erb
我正在尝试使用jQuery,一切都很棒,直到现在,当我尝试渲染部分并将其附加到div时.以下是我设置的方法:
我有一个响应js的动作:
def index
@objects = Object.find(:all)
respond_to do |format|
format.js
end
end
Run Code Online (Sandbox Code Playgroud)
还有一个名为index.js.erb的模板,里面有一些javascript:
alert("hello world");
Run Code Online (Sandbox Code Playgroud)
Firebug返回"text/javascript"响应,其中包含:
alert("hello world");
Run Code Online (Sandbox Code Playgroud)
但是没有出现警报窗口,也没有任何其他JavaScript工作.我检查了http://railscasts.com/episodes/136-jquery 并且或多或少跟随.我尝试了其他一些东西,比如使用.rjs而不是.erb并将它放在我的模板中:
page.alert("hello world");
Run Code Online (Sandbox Code Playgroud)
但我得到了相同的结果,浏览器从不执行JS.
任何人都知道为什么JavaScript没有被执行?
我正在运行Rails 2.3.4.
mak*_*oid 12
您必须从您的视图中调用它,否则它将永远不会被执行.
示例控制器:
def index
@objects = Object.find(:all)
respond_to do |format|
format.js{
render :text => "alert('hello')"
}
end
end
Run Code Online (Sandbox Code Playgroud)
和index.html.erb:
<script type="text/javascript">
$(function(){
$.ajax({ url: '/controller', type: 'get', dataType:'script' });
});
</script>
Run Code Online (Sandbox Code Playgroud)
将'/ controller'替换为执行该控制器的索引操作的实际url,默认情况下,对于PostsController它将是'/ posts'等等......
如果你喜欢rjs,你可以在控制器中删除{}和everithing并创建一个index.js.erb或index.rjs:
page.alert("hello world")
Run Code Online (Sandbox Code Playgroud)
要么:
page << "hello world"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10116 次 |
| 最近记录: |