Javascript:如何动态更新我的闭包
Javascript: How to Dynamically Update My Closure?
我对JS很陌生,所以,如果这是一个愚蠢的问题,请道歉:
目标:每次用户从下拉菜单中选择汽车时,汽车的价格都会增加一个运行总计。
我这里有一个JSFiddle的代码:更新闭包
<select id="select">
<option value="">Select</option>
<option value="100.00">Volvo</option>
<option value="200.00">Saab</option>
<option value="300.00">Mercedes</option>
<option value="400.00">Audi</option>
</select>
<p>total:</p>
<p id="total"> </p>
Javascript:
var addTo = function(passed) {
var add = function(inner) {
return parseInt(passed) + parseInt(inner);
}
return add
};
var inner = 0; // Need to Dynamically be able to Update this value so that it increments with each new car selected
var addProd = new addTo(inner);
$("#select").change(function() {
var car = $("#select").val();
$("#total").append(addProd(car));
});
所以,我抓住了选定的产品。然后,闭包将产品价格添加到零以开始。
我选择另一辆车。第二辆车的价格必须加到第一个价格上,从而增加总数。这是网页上显示的总数。
听起来应该很容易。小提琴中的代码不起作用。我不知道如何让代码增加闭包的"内部"值。显然,在每次选择之间必须保留的是内部。
闭包中需要一个变量来保存运行总计。
var addTo = function(passed) {
var total = parseInt(passed);
var add = function(inner) {
total += parseInt(inner);
return total;
}
return add;
};
我认为这就是你要找的。
var runningTotal = 0;
$("#select").on('change', function() {
var car = parseInt($(this).val());
runningTotal += car;
$("#total").html(runningTotal);
});
我认为这种情况最好使用 IFFE
var carTotal = (function() {
var total = 0;
return {
addToTotal: function(val) {
total += val;
return total;
}
};
})();
$("#select").change(function() {
var car = $("#select").val();
$("#total").append(carTotal.addToTotal(car));
});
相关文章:
- Angular没有根据模型更新我的选择元素
- 如何使用ng repeat中的选定输入更新我的对象
- 如何在 D3 中更新我的多折线图数据
- 如何使用javascript异步更新我的内容
- knockout.js获胜't更新我的foreach绑定,尽管更改已注册
- 如何在不按ctrl+F5的情况下更新我的Web应用程序(chrome、mozilla、IE8+)更改
- 为什么'这些AJAX调用正在更新我的变量
- 如何使用错误消息或成功消息动态更新我的跨度
- 我想听听服务器上的更改,并相应地更新我的网页.我如何用Javascript做到这一点
- Angular没有't在http请求后更新我的对象
- $apply在angularJs中没有更新我的范围变量
- ng模型没有更新我的对象值
- 如何根据用户选择更新我的税款
- Javascript:如何更新我的事件侦听器,使其仅在用户停止键入时进行更改
- 如何在 d3.js 中更新我的图形图例
- Angular ngClass 没有更新我的类,即使我的条件按预期发生了变化
- 为什么挖空不会更新我的文本框中的值
- 如何动态更新我的对象
- Javascript:如何动态更新我的闭包
- 指令不更新我的范围