0

我正在开发一个带有评级系统的 Ruby on Rails 应用程序。到目前为止,评级工作正常。我也对它进行了 ajaxified 并且它有效。我还想在条形图中显示当前评级平均值,其长度对应于所有评级的平均值。

Bar的长度设置如下

var average = parseFloat( $(".rating_filled").attr("data-average") );

var avg_width = (average/5)*200;


$(".rating_filled").css("width", avg_width);

该值在 html 中传递,如下所示

    <div class="rating_bar">
        <div class="rating_filled" data-average="<%=@game.ratings.average(:value) %>"></div>
    </div>

通过 ajax,我重新加载了包含此栏和其他统计信息的完整部分。除了酒吧,一切都会重新加载。一旦我提交评级,我就会得到当前的平均值,但条形图完全消失了。Firebug 指示栏本身接收最近提交的值,因此可以正常工作,但缺少图形部分。

所以我猜这是因为 javaScript 文件(定义图形长度的地方)没有通过 ajax 重新加载,因此根本不显示栏。

我不知道我是否只需将我的 jQuery 命令自定义为最新的,或者甚至在我的控制器中做一些事情,通过 Json 传递这些东西。

不知道大家能帮帮我吗?多谢!

4

1 回答 1

0

这就是我的部分的样子

<div class="rating_stats">
<div>
    Durchschnittswert:
    <span class="rating_avg">
    <% if !@game.average_rating.present? %>
        unbewertet
    <% else %>
        <%= @game.ratings.average(:value).round(2) %>
    <% end %>
    </span>
    <div class="rating_bar">
        <div class="rating_filled" data-average="<%= @game.ratings.average(:value) %>"></div>
    </div>
</div>

<div>
    Anzahl Wertungen: 
    <span class="rating_amount"><%= @game.ratings.count %></span>
</div>

<% if user_signed_in? %>
<p>
    Ihre Wertung :
    <span class="current_user_rating">

        <%= current_user_rating %>

    </span>
</p>
<% end %>

于 2013-05-24T17:57:18.840 回答