如何在jQuery中销毁$ .animate函数?

时间:2016-03-05 01:33:44

标签: jquery

我有一些像这样的代码:

function updateCounter(){
  $({someValue: 2*60*1000}).animate({someValue: 0}, {
      duration: 2*60*1000,
      easing:"linear",
      step: function() {
        //dosomething
      },
      complete: function() {
        // 2 minutes end
        alert('game_over');
      }
    });
}

通常情况下,game over将在2分钟后收到提醒。但是如果我想在它结束之前杀死它呢?我有这样的想法:在complete回调函数中,检查一个变量,如果它的值为true,则返回该函数。它适用于我,但有没有办法可以直接删除回调函数?就像removeEventListener()

无法通过Google或jQuery网站找到它。

1 个答案:

答案 0 :(得分:1)

因为您的对象没有以任何方式绑定到DOM,所以最好的方法可能是在创建对象时将其存储在变量中。这样,只要需要操作变量名,就可以通过变量名访问该对象。

function updateCounter(){
    var timer = $({someValue: 2*60*1000});

    timer.animate({someValue: 0}, {
        duration: 2*60*1000,
        easing:"linear",
        step: function() {
            if(yourCondition == true){ // condition for killing timer
                // do stuff when your timer is going to end
                // stops animation, default doesn't perform complete callback
                timer.stop();
            }
            // normal step function events
        },
        complete: function() {
            // 2 minutes end
            alert('game_over');
        }
    });
}