У меня есть простой список продуктов, где полоса зебры достигается с использованием метода cycle
.Динамическая вставка предметов, втирающих полосу зебры
Вот продукт частичный:
<tr class="product <%= cycle 'odd', 'even' %>">
<td><%= product.name %></td>
<td><%= product.price %></td>
<td><%= product.percentage %></td>
<td><%= link_to "Show", product %></td>
<td><%= link_to "Edit", edit_product_path(product), :remote => true %></td>
<td><%= link_to "Destroy", product, :confirm => 'Are you sure?', :method => :delete, :remote => true %></td>
</tr>
Однако, когда я динамически вставить другой продукт, метод цикла логически выбирает первый класс (в данном случае «нечетный» класс), таким образом, нарушая чередование до следующей перезагрузки. Хотя динамическая перезагрузка всего продукта будет работать; этот метод кажется несколько грязным и, скорее всего, будет беспорядочным с разбиением на страницы. Поскольку я по-прежнему относительно не знаком с JavaScript и прототипом, я не могу это сделать сам по себе, поэтому я должен спросить: есть ли способ получить класс предыдущего продукта («нечетный» или «четный») и соответственно добавить класс к вновь вставленному продукту?
Мой текущий UJS используется для вставки парциальное:
Modalbox.hide();
function insertProduct() {
$('products').insert({ top: "<%= escape_javascript(render @product) %>" });
$$('.product').first().highlight();
}
insertProduct.delay(0.8);
Любая помощь будет оценена.
Заранее спасибо.
Я еще не видел "UJS". Современные библиотеки построены на идеальном уровне, но многие забыли о «ненавязчивой» части. – clockworkgeek 2010-12-08 13:18:46