jQuery barrating.js - 发送id数据

时间:2016-09-06 13:33:06

标签: jquery rating jquery-bar-rating

我正在使用http://antenna.io/demo/jquery-bar-rating/examples/为表格中的人设置多个评分。一切正常,除了我不能 将select的data-attribute中的相应值传递给评级函数,以便为正确的人保存评级。

$('.rating').each(function(index, value) {
    var dataId = $(this).closest('select').attr("data-rating-candidate");
    //console.log(dataId);

    $('.rating').barrating('show', {
        theme: 'bars-1to10',
        onSelect: function(rating, text, event) {
            if (typeof(event) !== 'undefined') {
                console.log( dataId );
            }
        }
    });
});

显然,只有属性中最后传递的值才用于dataId变量。那么,如何获得所选评级的正确评分呢?我似乎无法在调整选择中使用$ this吗?

1 个答案:

答案 0 :(得分:2)

你不能使用$ this。但是反过来说,在onSelect回调中有一个名为'this'的变量。例如,我的元素具有'data-shop-id'属性,然后我可以通过这样做访问onSelect中的值:

onSelect: function(value, text, event) {
                var el          = this;
                var shop_id     = el.$elem.data('shop-id');
//do your stuff here                
}