我正在使用jquery星级评级插件“Raty”https://github.com/wbotelhos/raty。 我正在使用PHP从数据库生成结果集。这也包括得分。我想为每个评级组件设置分数属性。我怎样才能做到这一点? 我使用这种语法来显示星星。
$('.stars_small').raty({
readOnly : true,
half : true,
score : 2,
space : false
});
<div class="stars_small"></div>
在单个页面中有许多div,动态生成类“stars_small”。我想为每个div设置“得分”。
答案 0 :(得分:5)
$('.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
属性,其数字来自数据库查询。
答案 1 :(得分:0)
试试这个
$('.stars_small').each(function() {
$(this).raty({
readOnly : true,
half : true,
score : 2,
space : false
});
});
答案 2 :(得分: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]);
});
});
答案 3 :(得分:0)
这就是我所做的:
我为每个明星div创建了一个单独的类:
<div class="star s0"></div>
<div class="star s1"></div>
<div class="star s2"></div>
我还在模板中生成值数组(即,将值从我的服务器端脚本传递到网页)。像这样:
var array = new Array(2.4, 2.9, 5.0);
然后我在$(".star")
调用中声明所有三个“星标”的常见内容,并在一个周期中设置值:
$('.star').raty({
half : true
});
for (i = 0; i < array.length; i++) {
$('.s' + i).raty({
score:array[i]
});
}
答案 4 :(得分:0)
对于V.2.7,Jquery raty的格式为:
如果你需要根据动态值开始得分,你可以使用回调。
您可以为其传递任何值,不一定是数据值。例如,您可以使用字段值。
<div data-score="1"></div>
$('div').raty({
score: function() {
return $(this).attr('data-score');
}
});