MouseOver переключает div в Rails - PullRequest
       3

MouseOver переключает div в Rails

0 голосов
/ 28 августа 2011

У меня есть индексная страница Tasks, которую я сгенерировал на эшафот.

Чтобы сделать его более визуально привлекательным, я хотел бы скрыть представление редактирования и удалять ссылки, если в заголовке нет события mouseover .

<% @tasks.each do |task| %>
  <tr>
    <td><%= task.name %> - <%= link_to 'Move onto '+task.name+' and start its clock', task_start_path(task) %></td>
    <td>/ <%= link_to 'Rename task', edit_task_path(task) %></td>
    <td>/ <%= link_to 'Check its clocks', task %></td>
    <td>/ <%= link_to 'Destroy task', task, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>

Есть ли чистый способ сделать это в файле index.html.erb или мне нужно вызывать некоторые пользовательские вспомогательные функции javascript?

Я нашел Скрыть DIV [Rails] , но он переключается при щелчке, а не при наведении мыши.

1 Ответ

1 голос
/ 29 августа 2011

Вы должны использовать Ненавязчивый JavaScript в рельсах 3. Вы можете поместить специальный класс для элементов и, которые вы хотите скрыть (или для самих ссылок).

Что-тонапример:

<% @tasks.each do |task| %>
  <tr class="hide_on_hover">
    <td><%= task.name %> - <%= link_to 'Move onto '+task.name+' and start its clock', task_start_path(task) %></td>
    <td class="hideable">/ <%= link_to 'Rename task', edit_task_path(task) %></td>
    <td>/ <%= link_to 'Check its clocks', task %></td>
    <td class="hideable">/ <%= link_to 'Destroy task', task, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>

, а затем в вашем файле application.js вы добавите JavaScript для запуска при загрузке документа, найдете эти элементы и добавите действия при наведении курсора.Если вы используете JQuery (рекомендуется), вы можете увидеть простой способ сделать это (с примерами) здесь: http://api.jquery.com/hover/

...