jQuery动画无法正常工作(数字倒计时/递增计数)

时间:2014-02-17 23:26:15

标签: javascript jquery debugging animation counter

我有一个如下所示的脚本:

function powerClick(level, cost, user) {
    clicks = Number(clicks) - cost;
    addBPS();
}
function addBPS() {     
    var from = {property: $('#current').text()};
    var to = {property: Number(clicks)};
    jQuery(from).animate(to, {
        duration: 1000,
        step: function() {
            $('#current').text((Math.floor(this.property)));
        }
    });
}

单击按钮时会运行第一个函数,并调整clicks的值。然后它运行函数addBPS(在它下面)。

但是,函数addBPS并未完全倒计数存储在变量clicks中的数字。很多时候,函数powerClick将变量clicks设置为0.但是,当运行函数addBPS时,计数器不会一直下​​降到零。 / p>

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我在这里看到可能出现的问题:

  1. 可能是因为点击未定义为全球?因此,每次它结束运行第一个函数时,该值都会被销毁。
  2. 尝试用to.property或from.property?
  3. 替换this.property
  4. 我建议使用较少的通用变量名称,如“to”或“from”。你可能会发现自己有一天会不假思索地使用保留关键字(发生在我身上)

    var clicks;
    
    function powerClick(level, cost, user) {
        clicks = Number(clicks) - cost;
        addBPS();
    }
    function addBPS() {     
        var data_before = {property: $('#current').text()};
        var data_after = {property: Number(clicks)};
        jQuery(from).animate(to, {
            duration: 1000,
            step: function() {
                $('#current').text((Math.floor(data_after.property)));
            }
        });
    }