Скрыть / показать эффект Div - Ruby on Rails 2 - PullRequest
1 голос
/ 18 ноября 2009

Каков наилучший способ создания эффекта скрытия и показа в рельсах 2. Используется ли решение типа JQuery или есть что-то хорошее, лучшее или простое встроенное?

Ответы [ 4 ]

5 голосов
/ 18 ноября 2009

Самый простой способ - использовать 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, если я не делаю что-то действительно требующее чего-то, чего нет в prototype / scriptaculous, я просто буду придерживаться значений по умолчанию для простоты.

1 голос
/ 18 ноября 2009
$('#elementid').hide();
$('#elementid').show();
$('.elementClassname').show();
$('.elementClassname').hide();

Вы также можете указать параметры, например

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

или Числовое значение, а также

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

Вы также используете переключатель

$('.elementClassname').slideToggle();
1 голос
/ 18 ноября 2009

Rails поставляется с библиотеками javascript Prototype / Scriptaculous, но это зависит от вас, если вы хотите их использовать. В конце концов, вы должны использовать какой-то Javascript, нет ничего особенного встроенного в Rails, который волшебным образом сделает это за вас.

Я лично рекомендую jQuery - я обнаружил, что быстрее учиться, более мощный и расширяемый.

0 голосов
/ 18 ноября 2009

JQuery - отличный выбор , независимо от платформы, работает на Ruby так же хорошо, как и с ASP.NET/MVC

...