一旦它小于另一个变量,如何禁用onclick功能?

时间:2015-01-28 08:47:33

标签: javascript onclick

大家好,感谢您提前提供任何帮助,

我已经有一些功能,第一个每秒增加1%的总金额。第二个是onclick,原始总金额增加了100美元。第三个是从总金额中减去200美元加上200%的10%,因此每次点击它时,减去的金额就会增加。 这些功能正在我的本地计算机上运行,​​但我无法让它们在 JSFIDDLE 中工作。

我希望在总金额小于减去金额时禁用减号按钮,并且一旦有足够的金额使用,我也会再次启用它。

到目前为止,这是我的JS

setInterval(function () {
    var moneyTotal = document.getElementById('money-total').innerHTML;
    var perSec = (1 / 100) * moneyTotal;
    var moneyNewTotal = (+moneyTotal) + (+perSec);
    document.getElementById('money-total').innerHTML = (moneyNewTotal.toFixed(2));
    document.getElementById('per-second').innerHTML = (perSec.toFixed(2));
}, 1000);

function add() {
    var addAmount = 100;
    var moneyTotal = document.getElementById('money-total').innerHTML;
    var addTotal = (+addAmount) + (+moneyTotal);
    document.getElementById('money-total').innerHTML = (addTotal.toFixed(2));
}

function minus() {
    var cost = document.getElementById('cost').innerHTML;
    var money = document.getElementById('money-total').innerHTML;
    if (money > cost) {
        var moneyNewTotal = (+money) - (+cost);
        var newCost = (10 / 100) * cost;
        var costTotal = (+newCost) + (+cost);
        document.getElementById('cost').innerHTML = Math.ceil(costTotal);
        document.getElementById('money-total').innerHTML = (moneyNewTotal.toFixed(2));
    } else {
        alert("Not enough money");
    }
}

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

首先,小提琴不起作用,因为你已将它设置为加载你的javascript onLoad,它将你的功能包装在不同的范围内,因此它们在窗口上不可用。更改它以加载javascript No wrap - in <head>(或<body>)将有助于它的工作。

然后你需要有一些东西正在检查值并启用禁用减号按钮。

function checkTotal() {
    var moneyTotal = +document.getElementById('money-total').innerHTML; 
    var cost = +document.getElementById('cost').innerHTML;
    if (cost > moneyTotal) {
        document.getElementById('minus').setAttribute('disabled', 'disabled');    
    } else {
        document.getElementById('minus').removeAttribute('disabled');    
    }
}

然后你需要在addminus的末尾调用它,甚至是你在setInterval中定义的函数,以便在添加资金时进行检查。此代码仅将disabled属性添加到按钮,因此任何样式都需要通过代码或通过CSS以及设置/删除类名称或类似内容来处理。

通过数据绑定或使用事件模型作为框架的一部分,可能有不同的方法来做到这一点,但这些是一个更实质性的主题,在这个答案中可以真正涵盖。