我的以下逻辑有问题。
逻辑
var budgetCalc = function (financeBudget, totalCost, remainingBudget, changeOn) {
var reloadCalc = function () {
var formula = parseFloat($(financeBudget).val()) - parseFloat($(totalCost).val());
$(remainingBudget).val(Math.abs(formula.toFixed(0)));
if ( formula >= 0 ) {
$('.toolbar-budget').addClass('is-positive').append('<p>Remaining</p>');
} else {
$('.toolbar-budget').addClass('is-negative').append('<p>Over Budget</p>');
}
};
$(document).ready(function () {
// Price Input
$(changeOn).change(function () {
reloadCalc();
});
$(changeOn).trigger('change');
});
};
什么工作正常
该界面具有多个选择,输入和一个jQuery滑块,可更改的值formula
。当页面加载且公式值为时,逻辑工作正常>= 0
。如果该值还可以< 0
,那么formula
效果很好。
问题
如果公式的值是< 0
,然后> 0
又由于用户更改了所贡献的值而再次变为formula
,则.is-positive
除非页面刷新,否则逻辑不会将类更改回。
我的目标
.is-positive
如果值从< 0
到,我希望在不刷新页面的情况下应用的类>= 0
。
似乎最简单的解决方案是在添加适当的类之前先删除这两个类,$('.toolbar-budget').removeClass('is-positive is-negative');
然后在检查之前添加:
$('.toolbar-budget').removeClass('is-positive is-negative');
if (formula >= 0) {
$('.toolbar-budget').addClass('is-positive').append('<p>Remaining</p>');
} else {
$('.toolbar-budget').addClass('is-negative').append('<p>Over Budget</p>');
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句