新しく作成された選択肢がいくつかのajaxコードとともにリストに追加されているページがあるので、ユーザーはページ全体を更新する必要はありません。リストには2つの列が含まれ、右側の列には「ending」と呼ばれるcssクラスが必要です。これにより、右側にフロートされ、右側のパディングもゼロになります。
問題は、新しい選択肢が追加されたときに、レンダリングされるパーシャルが、サイクル関数が機能する必要がある場合に複数の選択肢を調べていることです。
以下の私のコードを参照して、部分的に正しいcssクラスを挿入するようにコードを変更する方法について何か提案があれば教えてください。
部分的:
<% @tickets.each do |choice| %>
<div id="<%= choice.id %>" class="<%= cycle("ticket shadow", "ticket shadow ending") %>" data-time="<%= choice.created_at.to_i %>">
<% end %>
VIEWのAJAX
<script type="text/javascript">
var pusher = new Pusher('<%= Pusher.key %>'); // Replace with your app key
var channel = pusher.subscribe('choices');
channel.bind('created', function(data) {
var after = $('.ticket:last').attr('data-time');
var settings = { after: after}
$.ajax({
url: '/Home/Index',
type: 'POST',
dataType: 'json',
data: settings,
success: function (data) {
$("#tickets").append(data.html);
}
});
}
);
</script>
編集:
私は以下を試してみましたが、それはうまくいくようですが、少しハッキーなようです..よりスムーズな解決策を持っている人はいますか?
if (css_end == "ticket shadow") {
$(".ticket:last").addClass("ending");
}