Проблема в рельсах с "циклом" над классами в 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).