我正在开发一个评分系统,并希望通过jquery调高每个评分值。
为此,我正在这样做,但是无法将上一个事件变量值转换为下一个事件。
var r1Rating;
$(".rating-input").on("click",function(){
//alert($(this).attr("id"));
var r1=$(this).attr("id");
var r1Array=r1.split("-");
//alert(r1Array[r1Array.length-1]);
var r1Rating=parseInt(r1Array[r1Array.length-1]).toFixed(2);
$("#total_rating").html(r1Rating);
var r1Rating=r1Rating;
});
$(".rating-input1").on("click",function(){
alert(r1Rating); //I want to get value here
});
任何帮助,建议将不胜感激。谢谢
最佳答案
即使您在外部作用域中具有r1Rating,由于您在点击处理程序中使用var r1Rating
,因此您还在点击处理程序中创建了一个新的本地范围的变量。因此,您对该变量所做的任何更改将仅在该方法内部可见,并且外部作用域中的变量将不会更新。
var r1Rating;
$(".rating-input").on("click", function () {
//alert($(this).attr("id"));
var r1 = $(this).attr("id");
var r1Array = r1.split("-");
//should not use var here
r1Rating = parseInt(r1Array[r1Array.length - 1]).toFixed(2);
$("#total_rating").html(r1Rating);
});
$(".rating-input1").on("click", function () {
alert(r1Rating); //I want to get value here
});