隐藏/显示Div效果 - Ruby on Rails 2

时间:2009-11-18 15:37:42

标签: jquery ruby-on-rails css ruby show-hide

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

4 个答案:

答案 0 :(得分: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

就个人而言,我会说除了$(元素).toggle()以外的任何东西都应该在它自己的RJS视图之外,因为视图应该基本上没有逻辑,但可能有很多对此持不同意见。

至于javascript框架,除非我正在做一些真正需要原型/ scriptaculous中不可用的东西,否则为了简单起见,我会坚持使用默认框架。

答案 1 :(得分:1)

$('#elementid').hide();
$('#elementid').show();
$('.elementClassname').show();
$('.elementClassname').hide();

您也可以提供参数

$('.elementClassname').show('slow');
$('.elementClassname').show('normal');
$('.elementClassname').show('fast);

或数字值

$('.elementClassname').show(600);

您也可以使用切换

$('.elementClassname').slideToggle();

答案 2 :(得分:1)

Rails附带了Prototype / Scriptaculous javascript库,但如果您想使用它们,则取决于您。最后你必须使用某种类型的Javascript,没有什么特别内置的Rails会为你神奇地做到这一点。

我个人推荐jQuery - 我发现学习速度更快,功能更强大,可扩展性更强。

答案 3 :(得分:0)

无论平台如何,

JQuery is an excellent choice在Ruby上的工作方式与在ASP.NET / MVC中的工作方式相同