在 rails 2 中创建隐藏和显示效果的最佳方法是什么。是使用 JQuery 类型的解决方案,还是内置更好、更好或更容易的东西?
问问题
4685 次
4 回答
5
最简单的方法是在视图中使用 link_to_function:
<%= javascript_include_tag :defaults %>
<%= link_to_function "toggle", "$('thing_#{@thing.id}').toggle()" %>
<p id="thing_<%= @thing.id %>">
<b>Body:</b>
<%=h @thing.body %>
</p>
另一种方法是使用 RJS,但这在很大程度上取决于您的应用程序的方式。这样,您必须设置控制器以查找 RESTful 操作之外的自定义操作,或者让现有操作查找 XHR 请求(使用“if request.xhr?”)
RJS 非常简单:
page["thing_#{@thing.id}"].toggle
就个人而言,我会说除了 $(element).toggle() 之外的任何东西都应该在视图之外进入它自己的 RJS,因为视图应该大部分没有逻辑,但可能有很多不同的意见那。
至于 javascript 框架,除非我正在做一些真正需要原型/scriptaculous 中不可用的东西,否则为了简单起见,我将坚持使用默认值。
于 2009-11-18T18:05:17.067 回答
1
$('#elementid').hide();
$('#elementid').show();
$('.elementClassname').show();
$('.elementClassname').hide();
您也可以提供参数,例如
$('.elementClassname').show('slow');
$('.elementClassname').show('normal');
$('.elementClassname').show('fast);
或数值
$('.elementClassname').show(600);
你也可以使用切换
$('.elementClassname').slideToggle();
于 2009-11-18T15:48:15.423 回答
1
Rails 捆绑了 Prototype/Scriptaculous javascript 库,但是否要使用它们取决于您。最后,您必须使用某种 Javascript,Rails 没有什么特别的内置功能可以神奇地为您做到这一点。
我个人推荐jQuery——我发现它学起来更快、更强大和可扩展。
于 2009-11-18T15:56:54.800 回答
0
JQuery 是一个很好的选择,无论平台如何,它在 Ruby 上的效果与在 ASP.NET/MVC 上一样好
于 2009-11-18T15:40:09.140 回答