如何在两个不同的jQuery事件中使用相同的变量?

时间:2015-07-09 07:58:09

标签: javascript jquery

我正在研究评级系统,并希望通过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
});

任何帮助,建议将不胜感激。感谢

2 个答案:

答案 0 :(得分:4)

即使您在外部作用域中有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
});

答案 1 :(得分:-2)

下面的代码应该是更改,因为在这个例子中,您在范围中创建了一个新的r1Rating变量,这意味着这是一个与外部全局变量不同的变量。

var r1Rating=r1Rating;

这应该改为:

r1Rating=r1Rating;