我正在使用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吗?
答案 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
}