Я пытаюсь использовать красивый плагин под названием jRating, который якобы выполняет какой-то вызов AJAX, когда я нажимаю на звезды. Он делает это с правильным значением скорости, но атрибут data-id
, который будет вводить запрос MySQL в AJAX-называемом файле, не определен (NaN). Это код:Чтение атрибута «data-id» с помощью jQuery
Демо HTML:
<div class="exemple">
<!-- in this exemple, 12 is the average and 1 is the id of the line to update in DB -->
<div class="basic" data-average="12" data-id="1"></div>
</div>
//Line 60:
//idBox = parseInt($(this).attr('data-id')), // old version, idBox=Nan
idBox = parseInt($(this).data("id")); // my version, still idBox=Nan
редактировать: JQuery вызова в заголовке главного Php страницы:
<script type="text/javascript">
$(document).ready(function(){
$(".exemple").jRating({
length:10,
decimalLength:0,
onSuccess : function(){
alert('Success : your rate has been saved :)');
},
onError : function(){
alert('Error : please retry');
}
});
});
</script>
Я не могу понять, что случилось. Пожалуйста, помогите мне найти его. Спасибо!
РЕШЕНИЕ:
Как было признано @ZachL, $(this)
, в jRating.jquery.js имел в виду div.exemple, в то время как данные Идентификатор был в div.basic.
So change $(this).data("id")
to $(this).find('.basic').data("id")
работал.
я себе его проблемы с '$ (это)'. Что вы получаете, когда регистрируете это? –
«Это» указывает на 'div.basic' или' div.exemple' или что-то еще? – biziclop
Я согласен с Заком. '$ (this)', вероятно, не тот элемент, который, по его мнению, есть, потому что '$ (this) .data (" id ")' должен работать. – Steve