我有一些像这样的代码:
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网站找到它。
答案 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');
}
});
}