我正在尝试显示当前速率并允许对相同输入重新评级,但它不起作用。我可以显示当前速率但禁用重新评级,反之亦然。我正在使用该插件:http://www.fyneworks.com/jquery/star-rating/#tab-API。 这是我得到的:
在这里,我得到了正确显示当前速率的版本:
$('.voting-star').rating().rating('select', '3');//
$('.voting-star').rating({
callback: function(value, link){
alert(value);
$.ajax({
url: '/false/address/xxx?rate=' + value + '&photo_id=123425',
});
}
});
这是允许重新评级的版本(但是当网站准备就绪时,我可以看到'警报'显示多次 - 并且启动了相同数量的AJAX请求:
$('.voting-star').rating({
callback: function(value, link){
alert(value);
$.ajax({
url: '/false/address/xxx?rate=' + value + '&photo_id=234234',
});
}
});
$('.voting-star').rating().rating('select', '%{$current_img->getLoggedUserRate()}%');
答案 0 :(得分:1)
我建议你Raty
$('#star').raty({
half: true,
start: /* your current average */
}).click(function() {
$.ajax /* etc */
});
答案 1 :(得分:1)
问题是,当您通过API调用callback
时,会多次调用select
函数。你可以这样做:
/* Check the appropriate rating (replace with server side code if necessary): */
$(".voting-star[value='3']").attr("checked", true);
/* Initialize the rating plugin: */
$('.voting-star').rating({
callback: function(value, link) {
alert(value);
}
});
这是一个工作示例(没有AJAX):http://jsfiddle.net/ErmRS/1/