在 RateYo 中使用自定义数据属性进行评分

Using custom data atribute for rating in RateYo

我从数据库中加载的帖子很少,在模板中我将每个项目都设置为具有此结构:

<li class="list-group-item">
    Rating: 
    <div class="movie_rating" data-rating="<%= movie.rating %>"></div>
</li>

但是,我无法设法从 data-rating 属性中获取值并将其放入每个元素中:

$(".movie_rating").rateYo(
    {
        rating: $(this).attr("data-rating"),
        fullStar: true,
        readOnly: true
    }
);

我想为每个元素将 rateYo 设置为不同的值,但是当我将它设置为一个时,它是为某些 class 的所有元素配置的(例如,如果第一个元素的评级为 1,它对于所有元素都为 1)。

问题已解决 - 我对所有元素使用 .each() 而不是 .rateYo()

$(".movie_rating").each( function() {
    var rating = $(this).attr("data-rating");
    $(this).rateYo(
        {
            rating: rating,
            fullStar: true,
            readOnly: true
        }
    );
});

这包含在插件的v2.3.2中,您可以通过

指定以上选项
    <div class="movie_rating"
         data-rateyo-rating="<%= movie.rating %>"
         data-rateyo-full-star="true"
         data-rateyo-read-only="true"></div>

这里有一个使用data方法的解决方案:

$('.movie_rating').each(function () {
    var rating = $(this).data('rating');
    $(this).rateYo({rating: rating});
});