Проблема в рельсах с "циклом" над классами в CSS и onmouseover, onmouseout

У меня есть этот код в моем 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;
}  

Суть в том, чтобы создать таблицу с кликабельными строками, нечетными и четными рядами разных цветов, а при наведении курсора мыши они получат третий цвет. Проблема в циклической части кода, если я помещаю только один цикл в класс = "<% = цикл ('нечетный', 'четный')%>" все работает нормально, у меня есть нечетные и четные строки разные цвета, но когда я перехожу, а затем без помощи мыши, значение класса остается тем же, которое установлено 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 ответ

Решение

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

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

Другие вопросы по тегам