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

标签 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
});

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

最佳答案

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

关于javascript - 如何在两个不同的 jQuery 事件中使用同一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31311424/

相关文章:

javascript - 获取 JavaScript 数组元素的最大长度

javascript - knockout 中 Attr 绑定(bind)的问题

javascript - $未定义错误

javascript - 部分修复使用ajax的渲染

javascript - 如何修复 NetSuite SuiteScript 未在发票上执行 'Paid In Full'

javascript - 在 `<input type=number>` 上禁用滚动

javascript - 找不到 Node.js socket.io.js 或未定义 io

javascript - 如何使用 JavaScript 在层次结构上动态添加控件?

设置 contentType 时 jquery ajax 不工作

javascript - jQuery 显示函数扭曲页面样式