jquery - 评级插件

时间:2011-03-13 14:27:30

标签: jquery jquery-plugins

我正在尝试显示当前速率并允许对相同输入重新评级,但它不起作用。我可以显示当前速率但禁用重新评级,反之亦然。我正在使用该插件: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()}%');

2 个答案:

答案 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/