2

jquery スター評価プラグイン "Raty" https://github.com/wbotelhos/ratyを使用しています。PHPでデータベースから結果セットを生成しています。スコアも含まれます。個々の評価コンポーネントごとにスコア プロパティを設定したい。どうやってやるの?星を表示するためにこの構文を使用しています。

$('.stars_small').raty({
      readOnly : true,
      half  : true,
      score : 2,
      space : false
 });  

<div class="stars_small"></div>

動的に生成されたクラス「stars_small」を使用して、1 つのページに多くの div があります。divごとに「スコア」を設定したい。

4

5 に答える 5

6
$('.stars_small').raty({
             readOnly : true,
             half  : true,
             score: function() {
                      return $(this).attr('data-rating');
                     }
              space : false
         });  

これは私にとってはうまくいきました。 プラグインは、このようにすべてdivの隠しテキストボックスを追加していますclass="stars_small"

<div class="stars_small">
     <input type="hidden" name="score" value="3.5" readonly="readonly">
</div>

valueそのため、データベースクエリから取得した番号で属性を設定しました。

于 2012-12-07T07:27:03.173 に答える
0

これを試して

   $('.stars_small').each(function() {

         $(this).raty({
                    readOnly : true,
                    half  : true,
                    score : 2,
                    space : false
              }); 
        });
于 2012-09-28T04:35:16.047 に答える
0

PHP で JS 行を生成したと仮定します。

// lines of JS generated with a loop in PHP (for the rate content)
var rates = [];
rates.push({...one rate coming from PHP...});
rates.push({...one rate coming from PHP...});
// etc...

次の方法で評価星を実行できます。

$(document).ready(function() {

    $(".starts_small").each(function(index, element) {

        $(this).raty(rates[index]);

    });

});
于 2012-09-28T04:44:26.197 に答える
0

これが私がしたことです:

これらのスター div ごとに個別のクラスを作成しました。

<div class="star s0"></div>
<div class="star s1"></div>
<div class="star s2"></div>

また、テンプレートで値の配列を生成します (つまり、サーバー側スクリプトから Web ページに値を渡します)。そのようです:

var array = new Array(2.4, 2.9, 5.0);

次に、呼び出しで 3 つの「スター バナー」すべてに共通することを宣言し$(".star")、サイクルで値を設定します。

$('.star').raty({
    half : true
});

for (i = 0; i < array.length; i++) { $('.s' + i).raty({ score:array[i] }); }

于 2012-11-23T15:37:22.387 に答える
0

V.2.7 の場合、Jquery レートは次の形式です。

動的な値に応じてスコアを開始する必要がある場合は、コールバックを使用できます。

必ずしも data-value ではなく、任意の値を渡すことができます。たとえば、フィールド値を使用できます。

<div data-score="1"></div>

$('div').raty({
    score: function() {
    return $(this).attr('data-score');
  }
});
于 2015-04-14T23:08:20.877 に答える