我正在尝试使用名为jRating的漂亮插件,当我单击星星时,它应该会执行某种 AJAX 调用。它使用正确的速率值来执行此操作,但data-id
将作为 AJAX 调用文件中 MySQL 查询的输入的属性未定义 (NaN)。这是代码:
演示 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
编辑:主 php 页面标题中的 jquery 调用:
<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,而 data-id 位于 div.basic 中。
所以改变$(this).data("id")
工作$(this).find('.basic').data("id")
。