【问题标题】:remembering a javascript var each call to function每次调用函数时记住一个 javascript var
【发布时间】:2011-07-12 22:02:21
【问题描述】:

我有一个漂亮的小购物篮,如果用户删除一个项目,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 方式来执行此操作?

【问题讨论】:

  • 当某个答案解决了您的问题时,将其标记为已接受的答案。

标签: javascript jquery var


【解决方案1】:

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

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

【讨论】:

  • 另外,他/她可能会考虑将这类信息(也可能是对其进行操作的函数)放在一个全局定义的对象中。或者,也可以通过在闭包中定义数据来避免污染全局命名空间。
【解决方案2】:

正如你所说的

我需要以某种方式拥有该功能 记住新的总数

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

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;

但认为方法一比方法二好

【讨论】:

    【解决方案3】:

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

    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);
        }
    }());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-27
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多