在我的'event#show'页面上,我有一个按钮,用户可以在该按钮上购买该活动的特定期限。在那之下我有@term对象列表(每个对象都有:event_id,:datetime,:max_capacity)。当用户购买该活动时,他实际上正在购买@term。我正在使用以下代码显示它:
<div class="list-group">
<% @terms.each_with_index do |term, i| %>
<% if i == 0 %>
<a href="#" class="list-group-item active">
<% else %>
<a href="#" class="list-group-item">
<% end %>
<h4 class="list-group-item-heading">Starts in <%= distance_of_time_in_words(Time.now, term.date_on) %></h4>
<p class="list-group-item-text">Maximum capacity: <%= term.maximum_capacity %></p>
<p class="list-group-item-text">Date: <%= term.date_on %></p>
</a>
<% end %>
</div>
这就是它的样子:
在我的event.rb中我(它将被重构):
def seats
["1", "2", "3"]
end
def total_price
if self.seleced_seats == "1"
self.price
elsif self.seleced_seats == "2"
self.price + self.price
elsif self.seleced_seats == "3"
self.price + self.price + self.price
else
self.price
end
end
在我的events_controller.rb中,我有:
def price
@event.seleced_seats = params[:edition]
respond_to do |format|
format.json {render json: @event, methods: [:total_price], only: []}
end
end
在price_calculation.js中我有:
$(function() {
$("#event_seleced_seats").change(function(){
var seleced_seats = $(this).val();
jQuery.getJSON(window.location.href + "/price", {edition: seleced_seats}, function(data) {
$("#price").text(data.total_price);
console.log(data.total_price);
});
});
});
我想要的是:
您会建议采用什么方法?
答案 0 :(得分:1)
data-term-id=<%= term.id %>
作为on click事件,只需添加一个这样的活动类:
$(".list-group-item").on('click', function(){
$(".list-group-item").removeClass('active')
$(this).addClass('active')
})
点击购买后,您可以找到active
元素及其ID