1

我有一个漂亮的小购物篮,如果用户删除一个项目,slideup jquery 函数就会被调用并消失。在后台,我通过调用代码点火器控制器将其从数据库中删除。

功能删除预订(id_booking,金额){
    if (user_total == null || user_total == '') {
        var user_total = parseFloat(0);
    }
    $.ajax({
        类型:“发布”,
        数据: '',
        网址:“/”+id_booking,
    });
    $("#booking_id_"+id_booking).slideUp();
    var user_total = (parseFloat() - parseFloat() - parseFloat(user_total));

    警报(用户总数);
    警报(parseFloat(user_total));
    $('#booking_total').html(user_total);
}

我无法理解的是,当我更新用户总数时:$('#booking_total') 我需要以某种方式让函数记住新的总数......我已经用谷歌搜索了“记住 JavaScript var”和类似的东西,但我找不到我需要的确切内容...我唯一的其他选择是使用 ajax 再次调用 db 以获得新的总数,但必须有一种 JS 方法来做到这一点?

4

3 回答 3

3

如果您不导航到其他页面,则可以将值存储在函数外部的变量中(无论是在全局命名空间中的页面上还是在函数所在的模块内)。

var total;
function delete_booking(...)
{
   ...
   total = user_total;
}
于 2011-03-10T17:41:40.293 回答
0

正如你所说

我需要以某种方式让函数记住新总数

一个函数不能记住一个值,而一个变量可以,为了解决您的问题,请执行以下操作

1

var finalTotal;
function delete_booking(...)
{
   //your more codes
   $('#booking_total').html(user_total);
   finalTotal = user_total;
}

现在变量finalTotal保存值

2

每当您觉得需要以这种方式访问​​总阅读量时

var total=parseint($('#booking_total').html(),10) || 0;

但是认为方法1比方法2好

于 2011-03-10T18:01:10.670 回答
0

因为我“讨厌”针对此类问题的全局方法,所以这里有一个小闭包,它可以完成“记住”值的工作(尽管我不太确定应该保存什么...^^)

var delete_booking = (function() {
    var booking_total = $("#booking_total"),
        total_amount = parseFloat(booking_total.html()) || 1000; // what ever the value should be...

    return function(id, m) {
        $.ajax(/* ... */);
        $("#booking_id_"+id).slideUp();

        total_amount -= m;
        booking_total.html(total_amount);
    }
}());
于 2011-03-10T22:53:42.657 回答