проблема в рельсах с "циклом" над классами в CSS и onmouseover, onmouseout - PullRequest
0 голосов
/ 28 октября 2010

у меня есть этот код в моем index.html:

<div id="users-list">
<tr class="<%= cycle('odd', 'even') %>" onmouseover="this.className='over';" onclick="location.href='<%= user_path(user) %>'" >

<td><%= user.surname %></td>
<td><%= user.name %></td>

</tr>
</div>  

как часть таблицы и связанного css:

#users-list  .odd {
    background: #00ffff;
}

#users-list .even {
    background: #ffffff;
}

#users-list .over {
    background: #00ccff;
}  

Смысл в том, чтобы создать таблицу с кликабельными строками, с нечетными и четными рядами разных цветов, а при наведении курсора мыши они получают третий цвет. Проблема в циклической части кода, если я поставлю только один цикл в class = "<% = cycle ('odd', 'even')%>" все работает нормально, я имеют нечетные и четные ряды разных цветов, но когда я перехожу, а затем выхожу из мыши, значение класса все равно остается равным onmouseover = "this.className = 'over';" . Поэтому я решил использовать onmouseout = "this.className = '<% = cycle (' odd ',' even ')%>';" вот так:

<tr class="<%= cycle('odd', 'even') %>" onmouseover="this.className='over';" onmouseout="this.className='<%= cycle('odd', 'even')%>';" onclick="location.href='<%= user_path(user) %>'" >  

А вот и проблема! Каждый из цикл перестает работать, и у меня всегда установлен класс как первый из двух параметров в цикле. Любая идея? Может быть, ошибка? Или какая-то несовместимость браузера? Мне нужно сделать эту работу на Chrome. Спасибо всем за любые предложения

1 Ответ

0 голосов
/ 28 октября 2010

Каждый вызов cycle переключает имя класса.В этой строке 2 вызова, что приведет к значению odd для одного и even для второго.

Вы должны использовать current_cycle во втором вызове (onmouseout).

...