2016-09-06 2 views
0

Я использую http://antenna.io/demo/jquery-bar-rating/examples/, чтобы установить несколько оценок для людей в таблице. Все работает, за исключением того, что не может соответствующее значение из атрибута данных выбора, которое нужно передать в функцию оценки, чтобы сохранить рейтинг для правильного человека.jQuery barrating.js - Отправка идентификационных данных

$('.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 внутри отсечения выбора?

ответ

2

Вы не можете использовать $ this. Но вместо этого, вместо этого, переменная называется «this» внутри onSelect. Например, у моего элемента есть атрибут data-shop-id, а затем я могу получить доступ к его значению внутри onSelect, выполнив это:

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

Спасибо, это помогает! – Chris