deroccha
deroccha

Reputation: 1183

raty rating score not properly displayed

I use the raty plugin to display rating stars on multiple items. I initialise the rating score over a data attribute like

 <span class="rating_score" data-rating="{{  review.rating}}" ></span>

then I run over the classes and I initiate raty as it follows

jQuery(".rating_score").each(function() {
                            $_this = jQuery(this);
                            console.log(($_this.attr('data-rating') ));
                            jQuery(this).raty({
                                path: '/bundles/gfx/rating/',
                                starOn: 'star.gif',
                                starOff: 'star_empty.gif',
                                hintList: ['1', '2', '3', '4', '5'],
                                scoreName: 'rating',
                                start: ($_this.attr('data-rating') ),
                                width: 13,
                                readOnly: true
                            });
                        });

the problem is the displayed rating value is going to be the same by each item, what is wrong in the snippet

Upvotes: 2

Views: 974

Answers (1)

Pete
Pete

Reputation: 58442

Try this (see comment for what I have changed):

jQuery(".rating_score").each(function() {
  $_this = jQuery(this);
  jQuery(this).raty({
    starOn: 'star',                      // this should be a class name with your class styling the star image rather than a gif
    starOff: 'star_empty',               // this should be a class name with your class styling the empty star image rather than a gif
    hintList: ['1', '2', '3', '4', '5'],
    scoreName: 'rating',
    score: $_this.attr('data-rating'),  // instead of start, use score and remove the brackets
    readOnly: true                      // remove this if you want to be able to select a new rating
  });
});
.rating_scrore {
  display: block;
}

.star,
.star_empty {
  display: inline-block;
  width: 15px;
  height: 15px; /* change width & height to match star gif dimensions*/
}

.star {
  background: red; /*change this to be you star.gif*/
}

.star_empty {
  background: blue; /*change this to be you star_empty.gif*/
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://jacob87.github.io/raty-fa/lib/jquery.raty-fa.js"></script>
<span class="rating_score" data-rating="1"></span><br />
<span class="rating_score" data-rating="2"></span><br />
<span class="rating_score" data-rating="3"></span><br />
<span class="rating_score" data-rating="4"></span><br />

Example where you can select a new rating

Upvotes: 1

Related Questions