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

bga*_*oci 1 css ruby jquery ruby-on-rails show-hide

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

Dan*_*vin 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>
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用RJS,但这很大程度上取决于你的应用程序.这样您就必须设置控制器以查找RESTful操作之外的自定义操作,或者让现有操作查找XHR请求(使用"if request.xhr?")

RJS非常简单:

page["thing_#{@thing.id}"].toggle
Run Code Online (Sandbox Code Playgroud)

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

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