我有一个漂亮的小购物篮,如果用户删除了一个项目,则会调用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方法来做这个吗?
答案 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);
}
}());