Rails + jQuery Sticky Button - PullRequest
       16

Rails + jQuery Sticky Button

0 голосов
/ 23 марта 2011

Я ищу предложения о том, как создать кнопку меню, которая может быть «липкой», то есть: если пользователь нажимает ее один раз, когда она остается нажатой в течение всего посещения сайта, даже если он просматривает несколько разных страници вернитесь.

Например, допустим, у меня есть строка поиска, подобная этой:

---------------------------------------------------
Keyword Search: _______________  [Advanced Options]
---------------------------------------------------

Когда пользователь нажимает «Дополнительные параметры», они получают дополнительные кнопки и «Дополнительные параметры».Кнопка «изменится на« выбранный »внешний вид, например:

---------------------------------------------------
Keyword Search: _______________  [*Advanced Options*]
Filter by date: ______ to _____
---------------------------------------------------

Теперь у меня уже работает эта функциональность, это примерно следующий html:

<div class="menu">
  ... menu buttons ...
  <div class="advanced_options">...</div>
</div>

... гдемой css содержит div.advanced_options { display: none; }, и я использую jQuery slideToggle(), чтобы показать и скрыть дополнительные параметры.

Проблема в том, что если пользователь щелкает ссылку в подменю, он, конечно, перенаправляется, икнопка не имеет состояния, поэтому подменю теперь снова скрыто, и пользователь должен показать его, если он хочет щелкнуть что-нибудь еще в меню.

Итак, я не совсем уверен, что будет хорошим подходомдля решения такого рода проблемы.Когда вам нужно было смоделировать передачу состояния от одного запроса к другому в приложении rails, как это, и как вы решили это?Как бы вы заставили эту кнопку оставаться «нажатой» от одного запроса к другому?

Спасибо!

1 Ответ

0 голосов
/ 23 марта 2011

Около 90% работы, которую мне пришлось выполнить в отношении «состояния» в веб-приложении, - это поиск по сайту. В этом случае я изменяю все соответствующие сгенерированные URL-адреса, чтобы включить параметры запроса, связанные с поиском, что-то вроде этого:

 # search_parameters is a hash in the form of
 # { :q => 'some search text', :order => 'some search order', 
 #   :criteria => 'some additional criteria' }
 random_resource_link(@random_resource, search_parameters)

В этом случае вы можете уйти, для очень маленьких состояний, используя сеанс.

<% if session[:button_enabled] %>
  <!-- HTML to render if the button is enabled -->
<% else %>
  <!-- HTML to render if the button is not enabled -->
<% end %>

Установить сессию [: button_enabled] с помощью вызова AJAX.

...