记住每次调用函数的javascript var

时间:2011-03-10 17:34:22

标签: javascript jquery var

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

function delete_booking(id_booking, amount) {
    if (user_total == null || user_total == '') {
        var user_total = parseFloat(0);
    }
    $.ajax({
        type: "POST",
        data: '',
        url: "/"+id_booking,
    });
    $("#booking_id_"+id_booking).slideUp();
    var user_total = (parseFloat() - parseFloat() - parseFloat(user_total));

    alert(user_total);
    alert(parseFloat(user_total));
    $('#booking_total').html(user_total);
}

我无法理解的是,当我更新用户总数时:$('#booking_total') 我需要以某种方式让功能记住新的总... 我用谷歌搜索'记住JavaScript var'和类似的东西,但我找不到我需要的东西...... 我唯一的另一个选择是用ajax再次调用db以获得新的总数,但是必须有JS方法来做这个吗?

3 个答案:

答案 0 :(得分:3)

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

var total;
function delete_booking(...)
{
   ...
   total = user_total;
}

答案 1 :(得分: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

答案 2 :(得分: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);
    }
}());