我正在尝试使用 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 返回一个“text/javascript”响应,其中包含:
alert("hello world");
但警报窗口没有出现,任何其他 JavaScript 也不起作用。我结帐了http://railscasts.com/episodes/136-jquery http://railscasts.com/episodes/136-jquery我或多或少也在跟随。我尝试了其他一些方法,例如使用 .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>
将 '/controller' 替换为执行该控制器索引操作的实际 url,默认情况下对于 PostsController 它将是 '/posts' 等等...
如果您喜欢 rjs,则可以删除控制器中的 {} 及其中的所有内容,并使用以下命令创建 index.js.erb 或 index.rjs:
page.alert("hello world")
or:
page << "hello world"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)