1

在 rails 2 中创建隐藏和显示效果的最佳方法是什么。是使用 JQuery 类型的解决方案,还是内置更好、更好或更容易的东西?

4

4 回答 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 回答