この方法を使用してゼブラストライプが実現されている製品の簡単なリストがあります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);
どんな助けでも大歓迎です。
前もって感謝します。